python中while语句的用法_python 使用while循环输出*组成的菱形实例
一,python輸出*組成的菱形(實心):
python代碼:
x = int(input('請輸入最長行的*的個數:'))
y = int(input('請輸入每個*之間的間隔:'))
i = 1
while i<= x: #第一個while組成菱形上半部
j = 1
k = 1
while k <= x-i:
print(' '*y,end = '') #每一行最左邊到第一個*之間的空格
k += 1
while j <= i:
print('*', end=' '*(2*y-1)) #每一行*的個數和*與*之間的間隔,要計算好才能上下對齊
j += 1
print('\n')
i += 1
while i <= 2*x-1: #第二個while組成菱形下半部
a = x+1
b = 2*x-1
while a <= i:
print(' '*y, end='')
a += 1
while b >= i:
print('*', end=' '*(2*y-1))
b -= 1
print('\n')
i += 1
二,python輸出*組成的菱形(空心):
代碼
x = int(input('請輸入最長行的*的個數:'))
y = int(input('請輸入每個*之間的間隔:'))
i = 1
#前兩個while組成上半部
while i <= 1: #菱形上頂點單獨列出
k = 1 #寫出最左邊到*的空格和第一個*
while k <= x - i:
print(' ' * y, end='')
k += 1
print('*')
print('\n')
i += 1
while i<= x:
k = 1
j = 1
while k <= x-i: #這個while寫出最左邊到左邊*的空格數
print(' '*y,end = '')
k += 1
print('*', end=' '*(2*y-1)) #這寫出左邊*,*相當于占一個空格,所以*后面的空格少一個,才能上下對齊
while j <= i-2: #這個while寫出左邊*到右邊*的空格數
print(' '*2*y,end='')
j += 1
print('*') #這寫出右邊*
print('\n')
i += 1
#后兩個while組成下半部
while i <= 2*x-2:
k = x+1
j = 2*x-2
while k <= i:
print(' '*y, end='')
k += 1
print('*', end=' '*(2*y-1))
while j-1 >= i:
print(' ' *2* y, end='')
j -= 1
print('*',end='')
print('\n')
i += 1
while i <= 2*x-1: #菱形下頂點單獨列出
k = 2 * x - 1
while k >= i+2 - x:
print(' '*y, end='')
k -= 1
print('*')
print('\n')
i += 1
補充知識:Python -- 使用循環語句永 “ * ” 輸出一個對線菱形
#使用循環語句輸出一個對線菱形
layer = int(input("請輸入要打印的層數:"))
#保證輸入的數字是奇數
while layer % 2 == 0:
#偶數
layer = int(input("輸入層數,必須是一個奇數:"))
#上半部分
for x in range(1, layer // 2 + 2):
# 先打印空格
space_num = layer - x
for y in range(1, space_num + 1):
print(" ", end="")
# 在打印*
star_num = 2 * x - 1
for y in range(1, star_num + 1):
if y == 1 or y == star_num or x == layer // 2 + 1 or y == star_num // 2 + 1:
print("*", end="")
else:
print(" ", end="")
# 換行
print("")
#下半部分
for x in range(layer // 2, 0, -1):
# 先打印空格
space_num = layer - x
for y in range(1, space_num + 1):
print(" ", end="")
# 在打印*
star_num = 2 * x - 1
for y in range(1, star_num + 1):
if y == 1 or y == star_num or x == layer // 2 + 1 or y == star_num // 2 + 1:
print("*", end="")
else:
print(" ", end="")
# 換行
print("")
輸出舉例:
以上這篇python 使用while循環輸出*組成的菱形實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。
本文標題: python 使用while循環輸出*組成的菱形實例
本文地址: http://www.cppcns.com/jiaoben/python/307084.html
總結
以上是生活随笔為你收集整理的python中while语句的用法_python 使用while循环输出*组成的菱形实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: educoder 使用线程锁(lock)
- 下一篇: python库和模块的区别_Python