Python: 检查一个字符的大小写

Python: check capitalisation of a character

我是一个非常新手的程序员,在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'语句中退出。但是,我有点自信,事实上字符确实传递给了函数...

你的问题是你有两个 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 分隔代码块的方式。

@Tikhon 写道:"Thank you very much, that worked! I'm not too sure why... but I'm very grateful"

解释:如果字符是小写,则执行第一个if块。 然而,代码的执行将迭代地进行到下一个 if 块,并且因为它是 False(假设第一个是 True)你执行 else 的情况。

因此使用 elif 将实现所需的行为:

if condition A:
  do something
elif condition B:
  do something else
else:
  do some default case