Python中for迴圈練習

2021-08-20 02:14:59 字數 1601 閱讀 8349

'''

1 *

2 *

**3 *

*****

''''''

分析:先找規律,以3層為例,第一層有兩個空格(n-1),第二層有1空格(n-2),第三層沒有空格(n-3)

'''n = int(input("請輸入乙個數:"))

# 將行數迴圈

for i in range(n+1):

# for j in range(i+1):

# # print("*"*i)

# pass

# n為多少,列印多少個*,但是每行的空格逐行遞減,

print(' '*(n-i)+'*'*i)

'''拓展:

****

*****

*******

*********

*******

*****

****

''''''

分析: * 1

*** 2

***** 3

******* 4

********* 5

******* 6

***** 7

*** 8

* 9

由這個圖形可以發現,第二行與第一行相比,多出了2個*,然後,少了兩個空格。

依次類推,總共有9行,

第一行,左右各(9-2*0-1)/2空格,中間1+2*0個*

第二行,左右各(9-2*1-1)/2空格,中間1+2*1個*

第三行,左右各(9-2*2-1)/2空格,中間1+2*2個*

第四行,左右各(9-2*3-1)/2空格,中間1+2*3個*

……第(n+1)/2行,左右各(n-2*(n-1)-1)/2空格,中間n個*

從第六行開始要逐行遞減。需要重新判斷,並且使用倒著的,range(m-2,0,-2),步長設為-2

第(n-1)/2行,左右各1+2*0空格,中間n-2*1個*

第(n-3)/2行,左右各1+2*1空格,中間n-2*2個*

…………

第n行,左右各(n-1)/2空格,中間1個*

'''m = int(input("請輸入乙個奇數"))

# 將行數迴圈

# 列印正著的

for i in range(1,m+1,2):

print(' '*int(((m-i)/2))+'*'*i+' '*int(((m-i)/2)))

# 當列印到最大行時,使用range(m-2,0,-2),倒著列印

if i == m: #判斷列印到最大行時,執行下面迴圈,

for j in range(m-2,0,-2): #使用range(),從大到小,間隔為2,依次遞減

print(' ' * int(((m -j ) / 2)) + '*' * j + ' ' * int(((m - j) / 2)))

Python中while迴圈練習 列印星星總結

直角三角形星星有四種情況分別是,如下圖所示,假設行數等於列數 其中 1 和 2 屬於一種情況,3 與 4 屬於另一種情況 首先說 1 和 2 這種三角形星星只需要列印星星即可,然後觀察可以知道 圖 1 是第1行列印1個星星,第2行列印2個星星,以此類推 定義行變數,從1開始計數 row 1 迴圈5次...

Python練習 迴圈素數

題目描述 數字197可以被稱為迴圈素數,因為197的三個數字迴圈移位後的數字 197,971,719均為素數。100以內這樣的數字包括13個,2,3,5,7,11,13,17,31,37,71,73,79,97。求任意正整數n以內一共有多少個這樣的迴圈素數 輸入格式 乙個正整數n 輸出格式 n以內迴...

python迴圈巢狀練習

1.三角形 for i in range 1,6 for j in range 1,6 i print end for k in range 1,i 1 print end print 2.九九乘法表 for i in range 1,10 for j in range 1,i 1 print d ...