wangwang123 发表于 2021-10-2 03:43:50

数字 不能和字符串做比较吗?

本帖最后由 wangwang123 于 2021-10-2 03:50 编辑

nums = []

while True:
    i = int(input("请录入一个整数(输入STOP结束):"))
    nums.append(i)
    if i == "STOP":
      break

为什么我的就不行呢。。。在答案里,也是数字和字符串比较的呀,还是说字符串不能和int的数据比较。就很懵,哪位哥哥姐姐可以帮忙解释一下。谢谢啦~小白一枚

答案在下面:

nums = []

isInput = True
while isInput == True:
    x = input("请录入一个整数(输入STOP结束):")
    if x != "STOP":
      nums.append(int(x))
    else:
      isInput = False

qq1151985918 发表于 2021-10-2 04:39:10

不是数字不能和字符串判断是否相等,而是非数字字符不能用int函数。

傻眼貓咪 发表于 2021-10-2 09:00:53

本帖最后由 傻眼貓咪 于 2021-10-2 09:01 编辑

解说如下
你的代码:nums = []

while True:
    i = int(input("请录入一个整数(输入STOP结束):")) # 这里你已经定义输入值为整数类型了,也不能输入其它字符串,否则报错
    nums.append(i)
    if i == "STOP": # 如上,整数类型不可能是字符串 "STOP"(所以 while 会永远循环)
      break正解:nums = []

isInput = True
while isInput == True:
    x = input("请录入一个整数(输入STOP结束):") # 这里只是输入值,没有定义类型(所以默认类型:字符串)
    if x != "STOP": # 如果字符串不是 "STOP"
      nums.append(int(x)) # 则将字符串变成整数类型(int)
    else: # 如果字符串是 "STOP"
      isInput = False # 则 isInput 为假

白two 发表于 2021-10-2 11:54:05

不同类型的数据之间不能比较,
你下边数字和字符串比较是因为先用 int函数 把字符串强制转换成了数字才进行比较的

wangwang123 发表于 2021-10-2 17:58:01

qq1151985918 发表于 2021-10-2 04:39
不是数字不能和字符串判断是否相等,而是非数字字符不能用int函数。

对的~谢谢啦
页: [1]
查看完整版本: 数字 不能和字符串做比较吗?