![](/img/trans.png)
[英]How do I add multiple string.counts into a list? I'm trying to print the numbers out using tuples
[英]how can i achieve this ? I'm trying to have an Input that will print out all the numbers in sequential order using python
所需的 Output這就是我希望我的 output 成為的樣子。
我現在擁有的。
rows = int(input("Please Enter a Number : "))
for I in range(1, rows + 1):
for j in range(1, I + 1):
print('*', end = ' ')
print()
但這就是我想要的 output
Enter any number : 21
Output
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
直角三角形 output 東西。
它讓我發瘋。 請幫助:)謝謝期待
您好,這是您的問題的解決方案
rows = int(input("Please Enter a Number : "))
count = 1
number = 1
while number <= rows:
for i in range(count):
print(number, end=" ")
number += 1
count += 1
print("\n", end="")
由於您總是需要每行添加一個數字,因此您需要一個變量來存儲要打印的數字數量(此處為count
)。 您還需要一個變量來計算為count
的每次迭代增加的當前數字(此處number
),並且僅當當前數字大於輸入時才停止(此處為rows
)
忽略三角形部分,第一步是打印所有數字:
rows = int(input("Please Enter a Number : "))
for num in range(1, rows + 1):
print(num, end=" ")
從那里我們想添加一個if
來打印一個新行,如果我們的號碼是
由於每行中的項目數是一個算術級數(即每個級別比它上面的級別長+1),我們可以使用算術級數求和公式計算每個級別末尾的數字:
number_at_end_of_level = level * (level + 1) / 2
這個公式的簡單解釋是,您通過平均第一個和最后一個級別的average = (level + 1) / 2
來找到每個級別中的平均項目數。 因為我們知道平均值,所以我們可以將其乘以級別數得到總數。
因此,將它們放在一起解決方案是:
rows = int(input("Please Enter a Number : "))
level = 1
for num in range(1, rows + 1):
print(num, end=" ")
number_at_end_of_level = level * (level + 1) / 2
if num == number_at_end_of_level or num == rows:
level += 1
print()
或者,如果您不想進行計算,您可以只計算在當前級別中打印了多少項目,並在該計數等於當前級別編號時打印一個新行:
rows = int(input("Please Enter a Number : "))
level = 1
current_level_count = 0
for num in range(1, rows + 1):
print(num, end=" ")
current_level_count += 1
if current_level_count == level or num == rows:
level += 1
current_level_count = 0
print()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.