英俊男孩建坤 发表于 2020-11-14 11:29:30

大佬救命

N = eval(input("Enter a positive value:"))
while N % 1 != 0:
    if str(N) == "END":
      print("Thank you!")
      
    else:
      N = eval(input("The input is not valid.Please enter a positive value:"))


为什么我输入END会一直显示END没有定义?

suchocolate 发表于 2020-11-14 12:10:09

本帖最后由 suchocolate 于 2020-11-14 12:15 编辑

慎用evalwhile True:
    ip = input("Enter a positive value:")
    if ip == 'END':
      print('Thank you')
    elif ip.isdigit():
      break
    else:
      print("The input is not valid.")
# type your code here
print(ip)

昨非 发表于 2020-11-14 12:14:08

本帖最后由 昨非 于 2020-11-14 12:17 编辑

,你这写的好乱,到底想要实现怎样的功能?
N%1!=0是什么意义?
还有,和字符串END进行判断又怎么和你的while条件同时进行?

英俊男孩建坤 发表于 2020-11-14 16:16:41

昨非 发表于 2020-11-14 12:14
,你这写的好乱,到底想要实现怎样的功能?
N%1!=0是什么意义?
还有,和字符串END进行判断又怎么和你的w ...

N%1 !=0 就是判断是不是整数   
我想输入END 就结束循环

英俊男孩建坤 发表于 2020-11-14 16:18:18

昨非 发表于 2020-11-14 12:14
,你这写的好乱,到底想要实现怎样的功能?
N%1!=0是什么意义?
还有,和字符串END进行判断又怎么和你的w ...

我想法就是先判断输入的数是不是整数如果不是整数就在判断输入的是不是end如果是end就输出thank you
否则就重新输入一个数

英俊男孩建坤 发表于 2020-11-14 16:23:01

suchocolate 发表于 2020-11-14 12:10
慎用eval

eval 与 int 有什么区别吗??

昨非 发表于 2020-11-14 16:23:34

英俊男孩建坤 发表于 2020-11-14 16:18
我想法就是先判断输入的数是不是整数如果不是整数就在判断输入的是不是end如果是end就输出thank yo ...

关键是N是整数的时候怎么和字符串比较,输入是end的时候怎么进入循环?

英俊男孩建坤 发表于 2020-11-14 16:25:41

昨非 发表于 2020-11-14 16:23
关键是N是整数的时候怎么和字符串比较,输入是end的时候怎么进入循环?

我改成了str(N)还是无法比较也是显示说要定义end

昨非 发表于 2020-11-14 16:33:14

英俊男孩建坤 发表于 2020-11-14 16:25
我改成了str(N)还是无法比较也是显示说要定义end

因为你这个思路就不行

合着我在这儿反问了半天你都没听懂我的意思啊

英俊男孩建坤 发表于 2020-11-14 16:36:13

昨非 发表于 2020-11-14 16:33
因为你这个思路就不行

合着我在这儿反问了半天你都没听懂我的意思啊

啊 这。你不是说字符串不能直接与数字比较吗? {:10_266:}

昨非 发表于 2020-11-14 16:38:53

英俊男孩建坤 发表于 2020-11-14 16:36
啊 这。你不是说字符串不能直接与数字比较吗?

如果他是END字符串,那么判断是不是整数的时候N % 1 != 0,字符串取余1有意义吗,不就直接错了吗

英俊男孩建坤 发表于 2020-11-14 16:40:32

昨非 发表于 2020-11-14 16:38
如果他是END字符串,那么判断是不是整数的时候N % 1 != 0,字符串取余1有意义吗,不就直接错了吗

感谢懂了!!!!!!

英俊男孩建坤 发表于 2020-11-14 16:42:45

昨非 发表于 2020-11-14 16:38
如果他是END字符串,那么判断是不是整数的时候N % 1 != 0,字符串取余1有意义吗,不就直接错了吗

N = eval(input("Enter a positive value:"))
if str(N) == "END":
    print("Thank you!")
      
else:
    while N % 1 != 0:
      N = eval(input("The input is not
valid.Please enter a positive value:"))


那改成这有就行了对吗?

昨非 发表于 2020-11-14 16:43:27

想要循环就老老实实while True:
下面判断对应情况break跳出循环就好了

想要判断输入是不是整数,用python字符串自带方法:
isalnum()
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False       
isalpha()
如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
isdigit()
如果字符串只包含数字则返回 True 否则返回 False..
islower()
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False

等等都是可以的啊

昨非 发表于 2020-11-14 16:45:29

英俊男孩建坤 发表于 2020-11-14 16:40
感谢懂了!!!!!!

推荐个新手友好型链接
https://www.runoob.com/python3/python3-string.html
不会的方法,函数,库呀啥的都可以在上面找到

英俊男孩建坤 发表于 2020-11-14 16:47:24

昨非 发表于 2020-11-14 16:45
推荐个新手友好型链接
https://www.runoob.com/python3/python3-string.html
不会的方法,函数,库呀啥 ...

感谢
页: [1]
查看完整版本: 大佬救命