我需要让用户输入作业的句子。然后,使用for
循环,我需要用%20
替换所有空格,以便准备将字符串用作URL。我一生无法解决。
sentence = str(input("Please enter sentence:"))
space = (" ")
for space in sentence:
space.replace(sentence, space, "%20", 500)
print(sentence)
这是我到目前为止输入的内容,但这是完全错误的。
答案 0 :(得分:2)
Python中的字符串无法修改。 replace()
函数返回完成所有替换的新字符串。您需要将此结果分配到某个地方。因此,您可以这样做:
sentence = sentence.replace(" ", "%20")
如果要循环执行,则需要在另一个变量中构建结果。
new_sentence = ""
for char in sentence:
if char == " ":
new_sentence += "%20"
else:
new_sentence += char
在循环中使用replace()
毫无意义。
答案 1 :(得分:1)
在第一行之后用print(sentence.replace(" ","%20"))
或者,如果您确实必须使用循环:
s = ''
for x in sentence:
if x == ' ':
s += "%20"
else:
s += x
print(s)
答案 2 :(得分:0)
您在这里遇到一些问题:
您在循环之前定义的变量 space 等于“”,但是您为for循环变量使用了相同的名称,该变量将遍历字符串句子字符串,在循环中,它将使用循环定义的值。
您给replace方法提供了太多参数,这是字符串对象的方法,因此您无需将大字符串传递给它来对Replace Method
进行操作您在空格字符串而不是句子字符串
在现实生活中做这件事的好方法:
old = ' '
new = '%20'
sentence = str(input("Please enter sentence:"))
print(sentence.replace(old,new))
您的老师可能追求的方式:
sentence = str(input("Please enter sentence:"))
old = ' '
new = '%20'
newSentence = ''
for letter in sentence:
if letter == ' ':
newSentence += new
else:
newSentence += letter
print(newSentence)