任意空實心圓形列印 Python練習系列 8

2021-10-23 04:16:30 字數 3490 閱讀 6424

練習內容:空實心圓形 勾股定理

完整**和注釋如下

def

circle

(r):

#空心圓

hollow_quarter_circle_rd=[[

' 'for x in

range

(r*2+1

)]for y in

range

(r+1)]

#建立圓的右下角四分之一的列表

hollow_half_circle_right=

#建立圓的右半邊的列表

hollow_whole_circle=

#建立整個圓的列表

for y in

range

(r+1):

#填充四分之一圓

half_chord=

round

((r**

2-y**2)

**0.5

)#half_chord 弦長的一半 利用勾股定理y^2+x^2=r^2

hollow_quarter_circle_rd[y]

[half_chord*2]

='o'

#豎向填充

hollow_quarter_circle_rd[half_chord]

[y*2]=

'o'#橫向填充

for y in

range

(r+1):

#將圓的右下角四分之一沿x軸對稱翻轉填充到圓的右半邊的列表內

-y-1])

for y in

range

(r+1):

#填充圓的右下角四分之一到圓的右半邊的列表內

)for y in

range

(r*2+2

):#將圓的右半部分沿y軸對稱翻轉填充到整個圓的列表內

) hollow_whole_circle[y]

=hollow_whole_circle[y][:

:-1]

#填充後每行列表翻轉

hollow_whole_circle[y]

+=' '

#填充最中間的一列

for y in

range

(r*2+2

):#將圓的右半部分填充到整個圓的列表

hollow_whole_circle[y]

.extend(hollow_half_circle_right[y]

)for y in

range

(r*2+2

):#列印出圓

for x in

range

(r*4+3

):print

(hollow_whole_circle[y]

[x],end='')

print()

print()

#實心圓

quarter_circle_rd=[[

' 'for x in

range

(r*2+1

)]for y in

range

(r+1)]

#建立圓的右下角四分之一的列表

half_circle_right=

#建立圓的右半邊的列表

half_circle_right_x_coordinate=

#建立圓的右半邊的x值列表

whole_circle=

#建立整個圓的列表

for y in

range

(r+1):

#填充四分之一圓

half_chord=

round

((r**

2-y**2)

**0.5

)#half_chord 弦長的一半 利用勾股定理y^2+x^2=r^2

quarter_circle_rd[y]

[half_chord*2]

='o'

#豎向填充

quarter_circle_rd[half_chord]

[y*2]=

'o'#橫向填充

for y in

range

(r+1):

#將圓的右下角四分之一沿x軸對稱翻轉填充到圓的右半邊的列表內

-y-1])

for y in

range

(r+1):

#填充圓的右下角四分之一到圓的右半邊的列表內

)for y in

range

(r*2+2

):#獲取圓的右半邊的x值

for x in

range

(r*2+1

):if half_circle_right[y]

[x]==

'o':

break

#對於每一行取到第乙個值就退出x的迴圈

for y in

range

(r*2+2

):#填充內部

for x in

range

(half_circle_right_x_coordinate[y]):

half_circle_right[y]

[x]=

'o'for y in

range

(r*2+2

):#填充兩個符號中間的空格 o o→ooo

for x in

range

(r*2+1

-2):

if half_circle_right[y]

[x]==

'o'and half_circle_right[y]

[x+2]==

'o':

#如果有兩個連著的o

half_circle_right[y]

[x+1]=

'o'#兩個o中間的空格變為o

for y in

range

(r*2+2

):#將圓的右半部分沿y軸對稱翻轉填充到整個圓的列表內

) whole_circle[y]

=whole_circle[y][:

:-1]

#填充後每行列表翻轉

whole_circle[y]

+='o'

#填充最中間的一列

for y in

range

(r*2+2

):#將圓的右半部分填充到整個圓的列表

whole_circle[y]

.extend(half_circle_right[y]

)for y in

range

(r*2+2

):#列印出圓

for x in

range

(r*4+3

):print

(whole_circle[y]

[x],end='')

print()

circle(

20)

任意空實心圓形列印 Python練習系列 8

練習內容 空實心圓形 勾股定理 完整 和注釋如下 def circle r 空心圓 hollow quarter circle rd for x in range r 2 1 for y in range r 1 建立圓的右下角四分之一的列表 hollow half circle right 建立圓...

python列印實心 空心正方形 x形

n float input 請輸入正方形邊長 n int n 1 if n 0 print 您輸入的數字不符合要求 for i in range n for j in range n print end print 輸出結果 1.頭尾單獨列印,中間用迴圈 n float input 請輸入正方形邊長...

python列印等邊三角形(實心,空心)

列印實心等邊三角形 1,3,5,7 所以最多一行的值為row 2 1,空格列印規律為,第row行為0,第row 1行為1,依次類推的話,第一行為n 1個空格,所以思路是輸出row行 外層for迴圈控制 內層兩個for迴圈,乙個控制列印空格,乙個控制列印 如圖 d spf python demo ve...