我有一個具有以下邏輯的 python 程式,我無法正確使用嵌套回圈 :( 第一行:朋友數量?第二行:在同一行中輸入每個人的姓名,以空格分隔 [在串列中]。這就是問候會去:
input:
3
John Sara Tom
輸出:
Sara: Hi John!
Tom: Hi Sara!
tom: Hi John!
John: bye guys!
Sara: bye John!
Tom: Bye John!
Sara: Bye guys!
Tom: Bye Sara!
Tom: Bye guys!
問候語(Hi)顯然是從串列中的第二個人開始;嵌套回圈將從串列中的最新人迭代到第一人(降序)
說再見也應該遵循同樣的事情?(這可以使用串列理解來完成嗎?!)
n=int(input())
user=list(input().split())
for i in range(2,n):
for j in range(i-1,1,-1):
print(user[i-1] ": Hi " user[j-1] "!")
for i in range(n):
print(user[i-1] ": Bye guys!")
for j in range(i 1):
print(user[j-1] ": Bye " user[i-1] "!")
uj5u.com熱心網友回復:
您的代碼方向正確。精心處理for和索引將完成它。請嘗試以下操作:
n = 3 # n = input('How many friends? ')
names = 'John Sara Tom'.split() # names = input('Who are they? ').split()
for i in range(1, n):
for j in range(i - 1, -1, -1):
print(f'{names[i]}: Hi {names[j]}!')
for i in range(n):
print(f'{names[i]}: Bye guys!')
for j in range(i 1, n):
print(f'{names[j]}: Bye {names[i]}!')
輸出:
Sara: Hi John!
Tom: Hi Sara!
Tom: Hi John!
John: Bye guys!
Sara: Bye John!
Tom: Bye John!
Sara: Bye guys!
Tom: Bye Sara!
Tom: Bye guys!
至于串列理解,當然你可以這樣做:
his = [f'{names[i]}: Hi {names[j]}!' for i in range(1, n) for j in range(i - 1, -1, -1)]
byes = [f'{names[i]}: Bye guys!' '\n'
'\n'.join(f'{names[j]}: Bye {names[i]}!' for j in range(i 1, n))
for i in range(n)]
print('\n'.join(his))
print('\n'.join(byes))
但顯然這不太可讀。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322606.html
上一篇:For回圈計算數學運算式
