关于while语句的用法
对while语句的用法,一直还是没能理解。我只知道while 后面所跟的变量为真时,则执行其下方的代码。可是这个语句如何终结?
比如我写了个代码:(目的是想输入一个数字,如果输入是数字,则直接打印,如果不是,则要求重新输入,允许次数为3次。
temp = input('请输入一个数字:')
times > 3
while temp.isdigit():
print(temp)
times -= 1
if times > 0
print('输入错误,请重新输入:', end = '')
print('输入完成')
这个代码完全无法做到我的要求。。该怎么改进。。 循环次数放在while 后面,while times: temp = input('请输入一个数字:')
times = 3
while 1:
try:
temp = int(temp)
print(temp)
break
except ValueError:
times -= 1
temp = input('输入错误,请重新输入:')
if times <= 0:
break
print('输入完成')
不一定一定要用while循环来判断,都无所谓吧 temp = input('请输入一个数字:') #接收输入并转换成整形
times = 2 #允许输入数 加上上面一次总共3次
while times: #判断输入次数
if temp.isdigit(): #是否为整型(字符串只有数字)
print(temp)
break#输入正确退出循环
else:
temp = input('输入错误,请重新输入:') #输入错误重新输入
times -= 1
print('输入完成')
while判断times,不要去判断temp 新手·ing 发表于 2017-7-28 08:00
不一定一定要用while循环来判断,都无所谓吧
只是单纯地想用下while,以便加深对while的理解。。 ooxx7788 发表于 2017-7-28 10:05
while判断times,不要去判断temp
为什么不要去判断temp?while要判断什么,该怎么评定? ba21 发表于 2017-7-28 09:55
为什么else后面用temp,而不是用print? 是不是因为,print只是单纯输出字符串,而没有输入功能?所以才要用到input?
还有,这个代码貌似只针对输入错误,才有3次重新输入。而且,如果最后一次输入也是错误的,并不会提示输入错误,而是直接提示输入完成。同时,如果输入正确,就只能输入一次,然后直接跳出循环了。 ba21 发表于 2017-7-28 09:55
请问下,第8行的代码中,我在input里面的字符串改成:'输入错误,请重新输入:',end='',只是增加了end='',却在输入错误时,被提示说:TypeError: input() takes no keyword arguments。
为什么啊? 老笨啊 发表于 2017-8-1 06:01
请问下,第8行的代码中,我在input里面的字符串改成:'输入错误,请重新输入:',end='',只是增加了end=' ...
input 有 ,end=''的参数吗?这个我不知道 老笨啊 发表于 2017-8-1 05:42
为什么不要去判断temp?while要判断什么,该怎么评定?
你这里想用次数来觉得是不是要继续循环,当然应该是判断times更好。
这不是必须的,但是从想法上更合理。你想根据猜测几次来觉得是否继续程序,结果去判断某个变量是不是数字,这显然不合理啊。 ba21 发表于 2017-8-1 08:35
input 有 ,end=''的参数吗?这个我不知道
end = '' 不是换行的意思么? 老笨啊 发表于 2017-8-1 13:58
end = '' 不是换行的意思么?
input 没有end参数
http://www.runoob.com/python/python-func-input.html ba21 发表于 2017-8-1 19:08
input 没有end参数
http://www.runoob.com/python/python-func-input.html
哦,那只有print才有end的参与么? 老笨啊 发表于 2017-8-2 05:43
哦,那只有print才有end的参与么?
据我所知,是的 temp=input('请输入一个数字:')
times=2
while times:
if temp.isdigit():
print(temp)
print('输入完成')
break
else:
temp=input('输入错误,您还有2次机会,请重新输入:')
if temp.isdigit():
print(temp)
print('输入完成')
break
else:
temp=input('输入错误,您还有1次机会,请重新输入:')
if temp.isdigit():
print(temp)
print('输入完成')
break
else:
times = 0
print('输入错误,您的机会已用完,未能完成输入并打印!')
页:
[1]