練習內容:空實心圓形 勾股定理
完整**和注釋如下
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
(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
(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...