我是一个非常新手的程序员,甚至是Python的新手。我试图检测传递给函数的字符是低级还是大写。
def encode(char, key, position, skipped):
if char.islower() == True:
ascii_offset = 97
if char.isupper() == True:
ascii_offset = 65
else:
print("You dun goofed laddie")
exit(2)
...
return char
该函数在'else'语句中退出。但是,我有点确信实际上字符确实传递给函数...
答案 0 :(得分:3)
你的问题是你有两个if语句,第二个有else。你想要这样的东西:
def encode(char, key, position, skipped):
if char.islower():
offset = 97
elif char.isupper():
offset = 65
else:
print("Somethings wrong")
exit(2)
return char
两个if语句导致它失败,因为如果你发送一个小写字母,它将始终导致else
语句运行。第二个if
声明是if this is not an upper case letter, exit(2)
。所以任何小写字母都会导致退出。还要注意你的缩进。这就是python如何分离代码块。
答案 1 :(得分:1)
@Tikhon写道:"非常感谢,这很有效!我不太清楚为什么......但我非常感激"
说明:如果字符是小写,则执行第一个if块。 但是,代码的执行将迭代地进行到下一个if块,并且因为它是False(假设第一个为True),你执行else case。
因此使用elif将实现所需的行为:
if condition A:
do something
elif condition B:
do something else
else:
do some default case