鱼C论坛

 找回密码
 立即注册
查看: 2694|回复: 3

练习While和FOR循环出现的问题。。

[复制链接]
发表于 2019-7-19 13:11:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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)为什么用不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-19 13:43:37 | 显示全部楼层
问题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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-19 14:07:43 | 显示全部楼层
shuofxz 发表于 2019-7-19 13:43
问题1:
因为你从键盘输入完字符给num_2之后,立马就又添加到了num_1中,啥都没判断,当然num_1中会有end
...

第一个解释有点蒙。。
代码错误跑不动啊。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-19 15:52:01 | 显示全部楼层
代码有点小问题,更正过了

第一个问题:
意思就是说你输入完了应该立马去判断这个是不是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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 06:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表