Python:检查字符的大小写

时间:2017-01-26 01:49:11

标签: python string function char capitalization

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

2 个答案:

答案 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