代码与if语句不兼容

时间:2017-08-06 05:14:09

标签: python python-3.x

我的代码存在问题,我想打印“你有一个罕见的姓氏!”如果您在键入的字符串中有q或Q,则非常罕见,如果不是,则不打印q,但不打印q。

这是我的工作代码:

a = input("What is your surname? ")
d = len(a)
v = ["q", "Q"]
if any(v in a for v in a):
  if a[0] == "Q" :
    if a[0] == ("q"):
      print("You have an extremly rare surname!")
    if a[0] == ("Q"):
      print("You have an extremly rare surname!")
  if a[0] == "q" :
    if a[0] == ("q"):
      print("You have an extremly rare surname!")
    if a[0] == ("Q"):
      print("You have an extremly rare surname!")
  if "q" in a[1:d]:
    print("You have a rare surname!")
else:
  print("No Qs here.")

2 个答案:

答案 0 :(得分:0)

您的条件if any(v in a for v in a)毫无意义,您正在测试v是否在a,但同时将v定义为a的一部分,没有意义。

此外,您的其他条件也非常糟糕,您测试第一个字母是否为Q然后如果确实如此,则测试它是否实际为q。< / p>

您的整个程序可以写成

a = input("what is your surname?")
if a[0] in ('q', 'Q'):
    print('extremely rare')
elif 'q' in a[1:] or 'Q' in a[1:]:
    print('rare')
else:
    print('no q here')

如果您不理解我使用的任何条件,我强烈建议您返回并重新学习条件的基本python语法,以便下次可以更好地编写它

答案 1 :(得分:0)

简化代码的另一种方法是使用.lower()将字符串转换为小写,并使用字符串slice检查字符串而不使用第一个字符:

rare_letter = 'q'
user_surname = input("What is your surname? ").lower()

if user_surname[0] == rare_letter:
  print("You have an extremly rare surname!")
elif rare_letter in user_surname[1:]:
  print("You have a rare surname!")
else:
  print("No Qs here.")

尝试here!