如果提供的答案不正确,请使用 while 循环调用“input”
Recall `input` with a while loop if an incorrect answer is supplied
当我使用 continue
时,Python 不会 return 进入封闭循环,因为我无法捕捉到错误。
以下循环应提示用户输入我设置的两个通用名称:George
和 David
。我想设置它,以便 Anaconda 询问用户的姓名。如果他们输入 George
,它会显示 Hi George
。如果他们输入 David
,它会显示 Hi David
。
如果用户输入任何其他名称,它会回调循环重试。我仍然是 Python 的初学者,这里显示了我对控制流的了解。
我知道 continue
仅适用于 while
条件。我的代码是这样写的:否则,虽然名称不是 George
或 David
,但触发 continue
,它应该进入封闭循环(如果名称不是 David
或 George
,再问一次名字)。
name = ''
if name != 'David' and name != 'George':
print('What is your name?')
name = input()
if name == 'David':
print('Hi David')
elif name == 'George':
print('Hi George')
else:
while name != 'George' or 'David' :
continue
您混淆了 while
和 if
。实际上有多种方法可以解决这个问题:
name = ''
while True:
print('What is your name?')
name = input()
if name == 'David':
print('Hi David')
break
if name == 'George':
print('Hi George')
break
或者
name = ''
while name != 'David' and name != 'George':
print('What is your name?')
name = input()
if name == 'David':
print('Hi David')
elif name == 'George':
print('Hi George')
或者更好的是,您可以使用 in
检查 name
是否是所有接受名称的 set
中的一个元素。对于 print
调用,您不必再次显式编写 David
和 George
,但可以使用新变量 name
:
name = ''
while name not in {'David', 'George'}:
print('What is your name?')
name = input()
print('Hi {}'.format(name))
while True:
print('what is your name?')
name = input()
if name == 'David':
print('hi david')
break
elif name == 'George':
print('hi george')
break
您不需要在此代码中使用 continue
。 continue
通常用于跳过不需要 运行 进一步满足特定条件的密集步骤。
例如:
while True:
x = float(input('Enter a number: '))
if x > 1023:
print (f'{x} is too large to compute')
#OverflowError: (34, 'Result too large')
continue
print (2**x) #Max: 2**1023
break
continue
时,Python 不会 return 进入封闭循环,因为我无法捕捉到错误。
以下循环应提示用户输入我设置的两个通用名称:George
和 David
。我想设置它,以便 Anaconda 询问用户的姓名。如果他们输入 George
,它会显示 Hi George
。如果他们输入 David
,它会显示 Hi David
。
如果用户输入任何其他名称,它会回调循环重试。我仍然是 Python 的初学者,这里显示了我对控制流的了解。
我知道 continue
仅适用于 while
条件。我的代码是这样写的:否则,虽然名称不是 George
或 David
,但触发 continue
,它应该进入封闭循环(如果名称不是 David
或 George
,再问一次名字)。
name = ''
if name != 'David' and name != 'George':
print('What is your name?')
name = input()
if name == 'David':
print('Hi David')
elif name == 'George':
print('Hi George')
else:
while name != 'George' or 'David' :
continue
您混淆了 while
和 if
。实际上有多种方法可以解决这个问题:
name = ''
while True:
print('What is your name?')
name = input()
if name == 'David':
print('Hi David')
break
if name == 'George':
print('Hi George')
break
或者
name = ''
while name != 'David' and name != 'George':
print('What is your name?')
name = input()
if name == 'David':
print('Hi David')
elif name == 'George':
print('Hi George')
或者更好的是,您可以使用 in
检查 name
是否是所有接受名称的 set
中的一个元素。对于 print
调用,您不必再次显式编写 David
和 George
,但可以使用新变量 name
:
name = ''
while name not in {'David', 'George'}:
print('What is your name?')
name = input()
print('Hi {}'.format(name))
while True:
print('what is your name?')
name = input()
if name == 'David':
print('hi david')
break
elif name == 'George':
print('hi george')
break
您不需要在此代码中使用 continue
。 continue
通常用于跳过不需要 运行 进一步满足特定条件的密集步骤。
例如:
while True:
x = float(input('Enter a number: '))
if x > 1023:
print (f'{x} is too large to compute')
#OverflowError: (34, 'Result too large')
continue
print (2**x) #Max: 2**1023
break