pin1 = int(input("Please set a pin: "))
print("Welcome to Satan's Soul Bank, Enter ya pin!")
attempt = int(input("Please enter your pin number first"))
if attempt == pin1:
print("Select operation.")
print("1.Deposit Souls")
print("2.Withdraw Souls")
print("3.Check Soul balance")
choice = int(input("Enter choice(1/2/3):"))
elif attempt != pin1:
for i in range(2):
attempt = int(input("Invalid Attempt Please enter your pin
number again"))
else:
print ("Card Swallowed Contact SATAN")
代码本身与else之后的print语句不同:它似乎无法识别它并且只是错过它,基本上我需要它来打印卡已经被吞下3次但是当我把它放入elif时它只是打印它每次我得到错误的区域,所以有任何其他方式来解决导致它打印卡已被吞下第3次
答案 0 :(得分:1)
如其他答案中所述,elif
块涵盖了if
块不满足的条件。为了确保在else
块中打印语句,您可以使用flag
变量,该变量在最大错误尝试之前将设置为false
。达到最大尝试次数后,将flag
设置为true
。
如果flag
设置为true
,则会吞下print
'卡。联系撒旦......'
答案 1 :(得分:1)
您需要重新构建代码才能获得所需内容。
pin1 = int(input("Please set a pin: "))
print("Welcome to Satan's Soul Bank, Enter ya pin!")
correct_pin = False
for i in range(3):
attempt = int(input("Please enter your pin number first"))
if attempt == pin1:
correct_pin = True
break
else:
print("Invalid PIN. {} attempts remain.".format(2 - i))
if correct_pin:
print("Select operation.")
print("1.Deposit Souls")
print("2.Withdraw Souls")
print("3.Check Soul balance")
choice = int(input("Enter choice(1/2/3):"))
else:
print ("Card Swallowed Contact SATAN")
我们循环3次,如果用户获得正确的引脚则退出,并且只有在引脚正确时才提供更多选项。
答案 2 :(得分:0)
在您的代码中
attempt
由于其中一个条件始终成立(pin1
等于else
),程序将永远不会到达{{1}}部分。
答案 3 :(得分:0)
只有当if
和elif
块 为false时,才会运行代码中的“else”块。唯一可能发生的方法是(attempt == pin1)
为假且 (attempt != pin1)
为假。
正如你所看到的那样,这是不可能的,因为要么它们是平等的,要么它们不是 - 它不可能都不是。这就是print ("Card Swallowed Contact SATAN")
永远不会运行的原因。
答案 4 :(得分:0)
看起来,你希望程序表现得如下:
pin1 = int(input("Please set a pin: "))
print("Welcome to Satan's Soul Bank, Enter ya pin!")
attempt = int(input("Please enter your pin number first"))
if attempt == pin1:
print("Select operation.")
print("1.Deposit Souls")
print("2.Withdraw Souls")
print("3.Check Soul balance")
choice = int(input("Enter choice(1/2/3):"))
elif attempt != pin1:
for i in range(2):
attempt = int(input("Invalid Attempt Please enter your pin number again"))
print ("Card Swallowed Contact SATAN")
在两次不正确的尝试之后,您想告诉用户联系SA **