添加条件

时间:2014-09-11 01:30:51

标签: python

我在为我的功能添加条件时遇到了困难。

我想编写一个带有两个参数的函数,其中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等函数中使用任何构建。

3 个答案:

答案 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