我试图对我的程序进行编码,如果用户输入的只是1,或者输入包含1的整数,如2431所示,则会显示一条消息。我遇到的问题是程序不会背靠背地显示消息,就像用户输入两次一样。如果输入是3115,则程序不检测1,
one = False
guess = input('Enter A Four Value Integer With Different Values Except for 1: ')
while guess in (1,'1'):
print('No ones are allowed')
one = True
break
答案 0 :(得分:1)
这应该可以解决问题:
break
你有一个使用while循环的正确想法,但是因为你在最后放了input
它只会做一次迭代。如评论中所述,如果条件不满足,{{1}}应该在循环中重新定义。
这里我们在循环之外初始化猜测,以便能够进入"循环。
答案 1 :(得分:0)
使用python' input
函数,它的值为str
类型。
所以你可以尝试这样:
if_1 = lambda :True if '1' in input('value?: ') else False
while if_1():
print('No 1 is allowed!')
else:
print('Great!')
答案 2 :(得分:0)
这是我能想到的最干净的解决方案:
while True:
guess = input('Number with no 1s: ')
if '1' in guess:
print("No ones are allowed.")
else:
break
如果您不需要错误消息,可以稍微简化代码:
guess = '1'
while '1' in guess:
guess = input('Number with no 1s: ')