[英]How do I make a multi-line input in python without using a list?
我必須在不使用列表的情況下編寫一個程序(因為我還沒有學會它們)以將 10 個名稱作為輸入並將它們全部小寫,然后將第一個字母大寫。 我想出了兩個都可以工作的程序; 但是,有一些問題:第一個程序是:
text=input()
x=text.split()
for name in x:
x=name.lower().capitalize()
print(x)
在上面的程序中,我只能在一行中輸入名稱,如果用戶按下回車鍵以便在新行中輸入新名稱,程序會認為輸入已經結束。 所以我搜索了互聯網並找到了 readlines() 方法,但我不知道如何限制輸入,我用“ctrl+z”手動完成,有沒有辦法可以限制它? 第二個程序如下:
import sys
text=sys.stdin.readlines()
for esm in text:
x=esm.lower().capitalize()
print(x)
如果要引入的行數為 10,則使用 for 循環
for _ in range(10):
name = input().title()
print(name)
循環中的 _ 意味着您不需要保留變量(您只需要迭代 10 次)
.title
使字符串變為小寫,但第一個字符為大寫
使用列表將是自然的方式,但由於這是一個約束,你可以這樣做:
t = ''
for i in range(10):
name = input(f'Input name {i+1}: ')
t += name + '\n'
print(t, end='')
仍然不完全清楚您到底想做什么以及為什么說要“不使用列表”進行操作,但顯示了您使用列表進行操作的示例。 無論如何,這里是您可能正在尋找的猜測:
def main():
string = input("Type in names (separated with spaces): ")
for name in string.split():
print(name.title())
if __name__ == '__main__':
main()
你可以這樣做:
n = 3
name = ''
print(f'INPUT {n} NAMES:')
for i in range(n):
name += input(f'{i+1}: ').title() + '\n'
print(f'OUTPUT:\n{name}')
INPUT 3 NAMES:
1: zALL
2: WALL
3: FALL
OUTPUT:
Zall
Wall
Fall
所有答案都可能是可行的,但是在沒有名稱的情況下,您不想在文本中添加空名稱,對嗎? 在這種情況下,您需要這樣做:
text = ""
i = 0
while i < 10:
x = input()
if x != "":
text += x + SEPARATOR # § is the separator, you can use anything
i += 1
for t in text.split(SEPARATOR):
print(t.title())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.