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

我是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 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