【问题标题】:Python: check capitalisation of a characterPython:检查字符的大小写
【发布时间】:2017-06-11 09:48:05
【问题描述】:

我是一个非常新手的程序员,甚至是 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 更改为 elif
  • 非常感谢,成功了!我不太清楚为什么......但我非常感激

标签: python string function char capitalization


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    @Tikhon 写道:“非常感谢,这很有效!我不太清楚为什么......但我非常感激”

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 1970-01-01
      • 2013-04-14
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2015-04-23
      • 2020-07-16
      相关资源
      最近更新 更多