我的代码存在问题,我想打印“你有一个罕见的姓氏!”如果您在键入的字符串中有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.")
答案 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!