我是python的新手,编写了简单的for循环
我正在编写一个程序,以从用户输入的电话号码中删除破折号。
phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.strip("-"))
但是,我收到的输出是:
9
0
0
8
我想要的输出是不带破折号的数字是900888943。
答案 0 :(得分:1)
6:58 PM
循环遍历字符串中的每个字符。所以您实际上是在做:
for
在字符串不是print("9".strip("-"))
print("0".strip("-"))
print("0".strip("-"))
print("-".strip("-"))
print("8".strip("-"))
print("8".strip("-"))
print("8".strip("-"))
print("-".strip("-"))
print("9".strip("-"))
print("4".strip("-"))
print("3".strip("-"))
的情况下,"-"
不会更改任何内容,因此它只是打印该字符串;当它为strip("-")
时,它变成一个空字符串,并打印出来。
默认情况下,"-"
在打印参数后添加换行符。您可以使用可选的print()
参数来更改此设置。
end=""
但是,像其他答案一样,仅打印phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.strip("-"), end="")
print("") # Add a newline at the end
会更简单。
答案 1 :(得分:1)
默认情况下,打印会以新行结束每个呼叫。同样,您的代码将用空的空格代替破折号,听起来好像不是您想要的。
您可以做的只是写以下内容:
phone = str(input("Enter a phone number")).replace("-","")
答案 2 :(得分:0)
您只需要使用str.replace
:
phone = str(input("Enter a phone number")) #900-888-943
print(phone.replace("-", ""))
# 900888943
如果您想同时使用for
和strip
,则列表理解是一种不错的选择:
phone = str(input("Enter a phone number")) #900-888-943
''.join([s.strip("-") for s in phone])
答案 3 :(得分:0)
您正在做的是在循环中每次调用打印,从而打印了新行。您可以尝试以下操作: 您可以用任何一种方式来做 解决方法一:将打印内容恢复到同一行
resolve
解决方案二:有一个变量
reject
答案 4 :(得分:0)
phone = '900-900-9000'
print(phone.replace('-','') //9009009000
答案 5 :(得分:0)
Python 3提供了最简单的解决方案,您要做的就是为print函数提供一个额外的参数。
phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.replace('-',''),end="")
现在输出将是:
900888943
如果在其他情况下,每个字符之间需要空格,则只需将打印功能中的end参数从end=""
替换为end=" "
str="SomeData"
for i in str:
print(i,end=" ")
现在输出将是:
S o m e D a t a