这是我的代码:
start_j = raw_input('Enter a name: ')
start_j = start.replace("A", "J")
start_j = start.replace("B", "J")
start_j = start.replace("C", "J")
print "Your name is " + start_j
无论如何将所有字母放在一个列表中,这样我就不必一次又一次地重复相同的过程,直到我达到字母“Z” 我尝试使用循环,但我似乎仍然无法正确地做到这一点。
这是一个场景: 系统将提示用户输入名称。 如果名称包含“J”以外的字母,则将使用replace()函数自动替换它。 因此它将打印出以J
开头的输入以下是一个例子:
site = raw_input('Enter your website: ')
site = site.replace("http://", "")
site = site.replace("https://", "")
site = site.replace("ftp://", "")
print "Your website is: " + site
预期输入为http://www.google.com 所以预期的结果会变成:
Enter your website: http://www.google.com
Your website is: www.google.com
我正在寻找一种方法将“http://”,“https://”,“ftp://”全部放在一个列表中,这样我便无需输入
site = site.replace("something", "something)
多次
答案 0 :(得分:4)
您可以使用正则表达式一次替换所有字母:
>>> import re
>>> re.sub(r'[A-Z]', 'J', 'This Is A Test Name')
'Jhis Js J Jest Jame'
(编辑后):您可以使用.startswith()
和字符串切片:
>>> name = 'A Name'
>>>
>>> if not name.startswith('J'):
... name = 'J' + name[1:]
...
>>> name
'J Name'
虽然我不确定为什么你甚至需要查看.startswith()
。无论哪种方式,结果都是一样的。
答案 1 :(得分:2)
您可以使用:
remove_from_start = ["http://", "https://", "ftp://"]
for s in remove_from_start:
if site.startswith(s):
site = site[len(s):]
break
或基于正则表达式的解决方案:
import re
regex = '^(https?|ftp)://'
site = re.sub(regex, '', site)
答案 2 :(得分:1)
import re
site = raw_input('Enter your website: ')
# input http://www.google.com or https://www.google.com or ftp://www.google.com
site = re.sub('^(?:https?|ftp)://', '', site)
print "Your website is: " + site
答案 3 :(得分:0)
使用字典:
In [100]: import string
In [101]: dic=dict.fromkeys(string.ascii_uppercase,"J")
In [104]: start_j = raw_input('Enter a name: ')
Enter a name: AaBbCc
In [105]: "".join(dic.get(x,x) for x in start_j)
Out[105]: 'JaJbJc'
修改强>
In [124]: dic={"https:":"","http:":"","ftp:":""}
In [125]: strs="http://www.google.com"
In [126]: "".join(dic.get(x,x) for x in strs.split("//"))
Out[126]: 'www.google.com'
答案 4 :(得分:0)
使用re,dict和lambda:
import re
replacte_to = {
"http://": "",
"https://": "",
"ftp://": "",
}
re.sub("^(ht|f)tps?://", lambda match: replacte_to[match.group(0)], YOUR_INPUT_STRING)