Python - 我的if条件在ASCII字符集中不起作用

时间:2017-08-31 15:21:08

标签: python python-3.x if-statement

我正在编写程序,如果用户输入带整数的字符串,则会从用户那里获取输入,因此它会删除所有的整数&只打印字符。

letters = input("Enter Some Word Here: ")
ans = ""
for letter in letters:
x = ord(letter)
print(x)
if 65 <= x >= 90 or 97 <= x >= 122 or x == 32:
    ans += letter
print(ans)

当我检查小写字符(if condition)或空格(97 <= x >= 122)时x == 32语句有效,但它不能用大写字母(65 <= x >= 90)。

2 个答案:

答案 0 :(得分:3)

如果您想检查x65 inc。之间是否90,您应该写65 <= x <= 90,如果您写的话,它也可能会使您的代码更清晰ord('A')代替65ord('Z')代替90

答案 1 :(得分:2)

检查信件的正确方法是使用x.isalpha()。这比使用序数值的幻数更清晰,如果您想要为非英语以外的语言运行代码(或者即使您只想使用任何words with accented characters,也可以使用。

如果不这样做,您至少应该直接与'A''Z''a''z'' '进行比较;您可以将字符与<=>=进行比较。

你想要的是“'A'小于或等于letterx小于或等于'Z'”,表示为{ {1}},就像常规数学一样。您拥有的内容'A' <= letter <= 'Z'表示您希望65 <= x >= 90大于或等于65且大于或等于90;这与它大于或等于90相同。