if语句的代码不工作问题

2024-06-25 23:03:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码有问题,它应该打印“你有一个罕见的姓氏!”或者一个非常罕见的例子,如果你在输入的字符串中有q或q,如果没有,它将不打印q,但它不会打印no 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.")

Tags: no字符串代码inyouaninputif
2条回答

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

另外,你的其他条件也很糟糕,你测试第一个字母是否是Q,如果是真的,你测试它是否真的是q

你的整个程序可以写成

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语法,以便下次编写得更好

另一种简化代码的方法是使用^{}将字符串转换为小写,并使用字符串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!

相关问题 更多 >