Python 为什么for循环会垂直产生输出?
我是python新手,编写简单的for循环 我正在编写一个程序来删除用户输入的电话号码中的破折号Python 为什么for循环会垂直产生输出?,python,function,for-loop,Python,Function,For Loop,我是python新手,编写简单的for循环 我正在编写一个程序来删除用户输入的电话号码中的破折号 phone =str(input("Enter a phone number")) #900-888-943 for i in phone: print(i.strip("-")) 但是,我收到的输出是: 9 0 0 8 我想要的输出是不带破折号的数字是900888943 您只需使用str.replace: phone = str(input("Enter a phone numb
phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.strip("-"))
但是,我收到的输出是:
9
0
0
8
我想要的输出是不带破折号的数字是900888943
您只需使用
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])
您只需使用
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])
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("-"))
在字符串不是“-”
的情况下,条带(“-”
不会改变任何内容,因此它只是打印该字符串;当它是“-”
时,它会变成一个空字符串,并打印出来
默认情况下,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
但是只打印
phone.replace('-','')
会更简单,就像在另一个答案中一样。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("-"))
在字符串不是“-”
的情况下,条带(“-”
不会改变任何内容,因此它只是打印该字符串;当它是“-”
时,它会变成一个空字符串,并打印出来
默认情况下,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
但是只打印电话会更简单。替换('-','')
,就像在另一个答案中一样。您所做的是在循环中的每次调用打印,从而打印一行新行。您可以尝试以下方法:
你可以用任何一种方式来做
解决方案一:这将使打印回到同一行
phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.strip("-"),end="")
解决方案二:有一个变量
phone =str(input("Enter a phone number")) #900-888-943
num = ""
for i in phone:
num +=i
print(num)
您所做的是在循环中每次调用print,从而打印一行新行。您可以尝试以下方法:
你可以用任何一种方式来做
解决方案一:这将使打印回到同一行
phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.strip("-"),end="")
解决方案二:有一个变量
phone =str(input("Enter a phone number")) #900-888-943
num = ""
for i in phone:
num +=i
print(num)
默认情况下,print以新行结束每个调用。此外,您的代码将用空空格替换破折号,这听起来不像您想要的
你可以做的只是写下以下内容:
phone=str(输入(“输入电话号码”))。替换(“-”,”)
默认情况下,print会以新行结束每次通话。此外,您的代码将用空空格替换破折号,这听起来不像您想要的
你可以做的只是写下以下内容:
phone=str(输入(“输入电话号码”)).replace(“-”,”)
Python 3提供了最简单的解决方案,您只需为print函数提供一个额外的参数
phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.replace('-',''),end="")
现在输出为:
900888943
S o m e D a t a
如果在其他情况下,每个字符之间需要空格,则只需将print函数中的end参数从end=“”
替换为end=“”
现在输出将是:
900888943
S o m e D a t a
Python3提供了最简单的解决方案,您所要做的就是为print函数提供一个额外的参数
phone =str(input("Enter a phone number")) #900-888-943
for i in phone:
print(i.replace('-',''),end="")
现在输出为:
900888943
S o m e D a t a
如果在其他情况下,每个字符之间需要空格,则只需将print函数中的end参数从end=“”
替换为end=“”
现在输出将是:
900888943
S o m e D a t a