python - PYTHON3:如何打印出用户输入字符串并用逗号分隔打印出来?
问题描述
我目前的代码是:
def my_input():
my_string = input("Important ions are: ")
for i in my_string:
print(my_string, sep=",")
my_input()
所以我正在尝试编写一个程序,提示用户“重要元素是:”并预计输入:
Na K Ca Mg Mn(都在一行上,由单个空格分隔):
然后,我希望我的代码打印出以下内容:
Important ions are: Na, K, Ca, Mg and Mn
相反,使用我当前的代码,我得到以下输出:
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
Na K Ca Mg Mn
我对为什么/如何多次打印输出感到困惑。我想我明白为什么它没有用逗号分隔,是因为它将输入视为 1 个字符串吗?而且我想为了打印出我想要的输出,我必须这样做
print("Important ions are" + my_string)
但我知道这不可能是正确的,然后我怎么能打印出输入,用逗号分隔并在它们之间添加一个“和”作为上面显示的所需输出?
解决方案
你可以试试这个:
import re
def my_input():
my_string = input("Important ions are: ").split() # storing the input as elements of a list
w = " ".join(my_string) # joining all the elements in the list
print("Important ions are: ", re.sub(" ",", ",w[0:-2]) +'and '+ my_string[-1]) # appending the last element after inserting ', ' and 'and'
my_input()
这应该完全按照您想要的方式为您提供输出。您的代码重复打印输入的原因是因为这一行:
print(my_string, sep=",")
它只是打印整个输入的次数与输入中的元素一样多。此外, sep="," 不会在循环中工作。
推荐阅读
- python - 有没有办法从每个元素中获取所有特定段落?
- performance - 在 Flutter 中使用大量图像(缩略图)提高滚动性能
- ms-access - 根据表单输入将数据从 MS Access 表链接到不同的表
- flutter - Flutter如何显示List中的单个值?
- azure-data-explorer - Kusto:运行查询以获取唯一 ID 号列表
- arrays - 如何获取字典中数组索引的值以填充表格视图
- swift - 在窗口调整大小期间重绘 NSView 边框有延迟
- php - 从目录重定向到文件
- php - 如何在 PHP 中使用 OAuth2 对 Google Cloud API 进行身份验证
- c - 删除给定字符串中所有出现的单词的程序