练习While和FOR循环出现的问题。。
num_1=[]num_2 = 0
while num_2 != "end":
num_2 = input("请输入数字")
num_1.append(num_2)
print(num_1)
打end结束循环时,为什么end也进入列表??
想给num_1排序。
print(num_1.sort(reverse=True)为什么用不了
问题1:
因为你从键盘输入完字符给num_2之后,立马就又添加到了num_1中,啥都没判断,当然num_1中会有end
改成这样
num_1=[]
num_2 = 0
while (num_2 = input("请输入数字")) != "end":
num_1.append(num_2)
print(num_1)
问题2:
排序的话是要给数字类型排序,而现在从input得到的都是字符类型,所以要先转成数字类型,如下:
num_1=[]
num_2 = 0
while (num_2 = input("请输入数字")) != "end":
num_1.append(int(num_2)) #这里将num2转换成数字类型,再存到num_1中
print(num_1)
shuofxz 发表于 2019-7-19 13:43
问题1:
因为你从键盘输入完字符给num_2之后,立马就又添加到了num_1中,啥都没判断,当然num_1中会有end
...
第一个解释有点蒙。。
代码错误跑不动啊。。{:10_266:} 代码有点小问题,更正过了
第一个问题:
意思就是说你输入完了应该立马去判断这个是不是end,而不是直接append到num_1中
所以做的修改有:
① 在while前面添加了一个input()代替num_2=0
② 在while循环中,把input()放到了append后面,这样input之后会直接进行下一轮的判断
num_1=[]
num_2 = input("请输入数字")
while num_2 != "end":
num_1.append(int(num_2))
num_2 = input("请输入数字")
print(num_1)
页:
[1]