我在为我的功能添加条件时遇到了困难。
我想编写一个带有两个参数的函数,其中input
框要求输入他们想要替换的字母,并且该函数用第二个参数替换input
中选择的那个字母, letter
,在函数中。例如,
替换(“我喜欢编码”,“p”)
“输入您要替换的信件”:o
我来tp cpde
到目前为止一切顺利。
def replace(phrase,letter):
c = input("Enter a letter you would like to replace")
d = ""
for char in phrase:
if char == c:
d += letter
else:
d += char
print(d)
但是我想添加一个条件,我很难做到。如果在输入中输入的字母不在第一个参数phrase
中,那么它应该打印出来"字母必须在短语"中。并再次要求输入他们想要替换的字母,这是在参数phrase
中给出的短语中。
另外,我只想使用枚举。我不希望在append或replace等函数中使用任何构建。
答案 0 :(得分:1)
默认情况下添加一个false的布尔值,如果找到字母char
则将其设置为true。
如果在处理完所有字符后布尔值仍然为假,则吐出错误
def replace(a,b):
while True:
c = input("Enter a letter you would like to replace")
d = ""
charfound = False
for char in a:
if char == c:
charfound = True
d += b
else:
d+= char
if charfound:
print(d)
break
else:
print('Letter must be in phrase!')
如果您希望脚本重新询问用户是否找不到该字符,则需要将所有代码放在永久循环中(即while True:
)并将其分解为< em>成功执行
答案 1 :(得分:0)
要检查字符'x'
是否在字符串my_string
中,您可以使用in
运算符:
>>> my_string = 'I love to code'
>>> 'o' in my_string
True
>>> 't' in my_string
True
>>> 'p' in my_string
False
当然,您也可以将该字符存储在变量中:
>>> a = 'p'
>>> a in my_string
False
>>> a = 'o'
>>> a in my_string
True
答案 2 :(得分:-2)
您可以将raw_input()
与while True
结合使用,如下所示:
$ cat x.py
#!/usr/bin/python
def replace(a,b):
while True:
c = raw_input("Enter a letter you would like to replace:")
if len(c) != 1 or c not in a:
print "Invalid input! Try again"
else:
break
d = ""
for char in a:
if char == c:
d += b
else:
d+= char
print(d)
>>> from x import replace
>>> replace('this is a test', 'z')
Enter a letter you would like to replace:1
Invalid input! Try again
Enter a letter you would like to replace:q
Invalid input! Try again
Enter a letter you would like to replace:t
zhis is a zesz