如何替换嵌套循环中的最后一个字符?
How to replace last character in nested loops?
我正在尝试让输出以文字形式显示您输入的数字:
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine"
}
output = ""
for character in phone:
output += digits_mapping.get(character) + ", "
print(output, end="")
例如,如果输入等于545
,我将得到Five, Four, Five,
如何获得Five, Four, Five!
循环中的字符串连接通常是 Python 中的 bad idea (做几次还不错)。相反,您可以使用列表并将项目附加到它。然后使用.join()
。对于打印,您需要将 end=
参数指定为 '!\n'
而不是默认的 '\n'
.
output = [digits_mapping[char] for char in phone]
print(", ".join(output), end='!\n')
您也可以使用生成器表达式:
print(", ".join(digits_mapping[char] for char in phone), end='!\n')
另一种方法是使用 '!'
构建字符串,然后使用普通打印:
print(", ".join(digits_mapping[char] for char in phone) + '!')
任何时候创建字符分隔列表时,最好将列表的成员写入列表对象并使用 join()
输出分隔字符串。在任何语言中都是如此(尽管您使用的通常是数组,而不是列表)。相反:
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine"
}
words = []
for character in phone:
words.append(digits_mapping.get(character))
print(",".join(words) + "!", end="")
最后只打印字符串的副本,除了最后 2 个字符(space 和一个逗号:“,”),并在结束参数中添加感叹号欲望。你的最后一行看起来像这样:
print(output[:-2], end="!")
这是另一个策略 - 检查您是否在列表的最后一项上。如果是,请附加“!” - 否则,追加 ", ".
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine"
}
output = ""
for i in range(len(phone)):
if i == len(phone) - 1:
output += digits_mapping.get(phone[i]) + "!"
else:
output += digits_mapping.get(phone[i]) + ", "
print(output, end="")
我建议在 for
之后,将 output
重新分配给自身,省略最后一个字符 (",")。然后将 output
与“!”连接起来。
output=output[0:len(output)-1]
output+="!"
希望对您有所帮助。祝你编码愉快。
我正在尝试让输出以文字形式显示您输入的数字:
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine"
}
output = ""
for character in phone:
output += digits_mapping.get(character) + ", "
print(output, end="")
例如,如果输入等于545
,我将得到Five, Four, Five,
如何获得Five, Four, Five!
循环中的字符串连接通常是 Python 中的 bad idea (做几次还不错)。相反,您可以使用列表并将项目附加到它。然后使用.join()
。对于打印,您需要将 end=
参数指定为 '!\n'
而不是默认的 '\n'
.
output = [digits_mapping[char] for char in phone]
print(", ".join(output), end='!\n')
您也可以使用生成器表达式:
print(", ".join(digits_mapping[char] for char in phone), end='!\n')
另一种方法是使用 '!'
构建字符串,然后使用普通打印:
print(", ".join(digits_mapping[char] for char in phone) + '!')
任何时候创建字符分隔列表时,最好将列表的成员写入列表对象并使用 join()
输出分隔字符串。在任何语言中都是如此(尽管您使用的通常是数组,而不是列表)。相反:
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine"
}
words = []
for character in phone:
words.append(digits_mapping.get(character))
print(",".join(words) + "!", end="")
最后只打印字符串的副本,除了最后 2 个字符(space 和一个逗号:“,”),并在结束参数中添加感叹号欲望。你的最后一行看起来像这样:
print(output[:-2], end="!")
这是另一个策略 - 检查您是否在列表的最后一项上。如果是,请附加“!” - 否则,追加 ", ".
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine"
}
output = ""
for i in range(len(phone)):
if i == len(phone) - 1:
output += digits_mapping.get(phone[i]) + "!"
else:
output += digits_mapping.get(phone[i]) + ", "
print(output, end="")
我建议在 for
之后,将 output
重新分配给自身,省略最后一个字符 (",")。然后将 output
与“!”连接起来。
output=output[0:len(output)-1]
output+="!"
希望对您有所帮助。祝你编码愉快。