小白关于while的一个小问题,求指点
本帖最后由 Justin6 于 2020-3-31 23:14 编辑请看论坛里小甲鱼的一串代码的一部分,如下
temp = input('请输入一个整数:')
number = int(temp)
while number:
i = number - 1
第三行while number:
为什么可以这样用,while后不是加条件吗,为什么加number
且这这代码所表示的意义是什么。 int强制转换数据为整型 和while True的意义一样,只要number为True(不等于0)就继续循环
https://fishc.com.cn/thread-159048-1-1.html
还可以看下这篇帖子 没看错的话,这是个死循环吧{:10_256:} Hello. 发表于 2020-3-31 11:49
int强制转换数据为整型
int不就是整型么…… while number:这里while只看 number的值是True 还是False.
如果while Ture: while体里面的代码就执行
如果while False: while体里面的代码就不会执行
在python中,以下数值会被认为是False:
为0的数字,包括0,0.0
空字符串,包括'', ""
表示空值的None
空集合,包括(),[],{}
其他的值都认为是True。 temp = input('请输入一个整数:')
number = int(temp)
while number:
i = number - 1
输入number时它是个字符串,加int是为了之后使用他为整型 我的理解就是转为数字格式,后面while判断True 或 False,如果为True就循环下去
我也刚学,这是我的理解{:10_254:} 这就是个死循环吧...呃,还是来解决疑问吧:
其实,如果把while number这个语句展开,就是while number == True,也就是说,只要number不等于0,也就是False,就永远不会停下。
再来解决一下死循环问题:
temp = input("请输入一个整数:")
number = 0
try:
number = int(number)
x = True
except:
print("您输入的值不合法!")
x = False
if x:
i = number
while i:
i -= 1
本帖最后由 lixiangyv 于 2020-3-31 15:09 编辑
while 后面就是要加一个 bool (布尔)值,条件返回的都是一个布尔值,
在 Python 中,只要不是 0 的整数,在 Python 眼里,都是 True 。True 或 False 都是 一个布尔值。
int(temp) 的意思就是将 temp 转换成 一个整数,你可能会疑惑,输入的就是整形为什么又要强转成整形呢?
因为 input 函数的返回值是一个字符串类型,是非整型的。就算用户将输入的就是一个数字,返回的也是字符串。
这行代码的作用就是让用户输入一个数字,如果是 0 ,就直接退出,如果不是,那程序就会卡在这,因为 number 再循环体内没有发生变化,所以这个就是一个死循环了。
如果不想让他是死循环就行该将最后一行代码改成 number -= 1 whilex : 只要 x是除零以外的数字都算True x =0 时候 算False while number 就是 while number != 0,当 number 不为 0 时执行循环 while后条件为真时就循环
number一直为真时就一直循环
直到number变成0 input()返回的是一个字符串,所以要转换成整形 int可以方便递增或递减,限制循环的次数
页:
[1]