python经典题:九九乘法表和冒泡排序

python经典题:双重循环和列表

文章目录

    • python经典题:双重循环和列表
      • 1、小白python打印九九乘法表
      • 2、小白打印图形贴纸
        • (1)打印正方形:
        • (2)打印三角形(从各个角度打印):
        • (3)打印菱形贴纸图案:
        • (4)打印空心正方形:
      • 3、元素交换游戏:
      • 4、冒泡排序:

1、小白python打印九九乘法表

for i in range(1,10):
    # print(" " * (45 - i), end="")
    for j in range(1,i+1):
        print(f"{
       j}*{
       i}={
       i*j}",end=" ")
    print("")
    
1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

2、小白打印图形贴纸

(1)打印正方形:

b='*'
for i in range(1,6):
    for j in range(1,6):
        print("{}".format(b),end=" ")
    print()
    
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * * 

(2)打印三角形(从各个角度打印):

#第一种三角形
b='*'
for i in range(1,6):
    for j in range(1,i+1):
        print(b,end=" ")
    print()
* 
** 
*** 
**** 
***** 
#第二种三角形图案:
for i in range(1,6):
    print(" "*(6-i),end="")
    for j in range(1,i+1):
        print(b,end="")
    print()
     *
    **
   ***
  ****
 *****
#反三角形:第三种
for i in range(1,6):
    for x in range(6-i,0,-1):
        print(b, end="")
    print()
*****
****
***
**
*
#第四种三角形图案:
for i in range(1,6):
    print(" " * (i - 1), end="")
    for x in range(6 - i, 0, -1):
        print(b, end="")
    print()
*****
 ****
  ***
   **
    *

(3)打印菱形贴纸图案:

#图形打印,菱形
b='*'
for i in range(1,10):
    print(" " * (9 - i), end="")
    for j in range(1,i+1):
        print(b,end=" ")
    print()
for j in range(1,10):
    print(" " * j, end="")
    for j in range(10-j,1,-1):
        print(b,end=" ")
    print()
    
        * 
       * * 
      * * * 
     * * * * 
    * * * * * 
   * * * * * * 
  * * * * * * * 
 * * * * * * * * 
* * * * * * * * * 
 * * * * * * * * 
  * * * * * * * 
   * * * * * * 
    * * * * * 
     * * * * 
      * * * 
       * * 
        * 

(4)打印空心正方形:

#定义一个变量rows并赋值想要打印正方形的边长
rows = int(input("请输入你想打印空心正方形的边长:"))
#外层for循环控制打印的行数
for x in range(rows) :
    #通过if语句判断行数,筛选出第一行和最后一行
	if x == 0 or x == rows-1 :
        #内层for循环打印正方形上下两边
		for y in range(rows) :
			print(' *' , end = '')
    #else获取剩余行数
	else :
        #for循环打印
		for y in range(rows) :
            #if语句判断列,筛选出第一列和最后一列打印 *
			if y == 0 or y == rows-1 :
				print(' *' , end = '')
            #else获取剩余列,打印空格
			else :
				print('  ' , end = '')
    #换行
	print('')
    
请输入你想打印空心正方形的边长:8
 * * * * * * * *
 *             *
 *             *
 *             *
 *             *
 *             *
 *             *
 * * * * * * * *

3、元素交换游戏:

#交换两元素:三变量交换法
a=int(input("请输入第一个数:"))
b=int(input("请输入第二个数:"))
c=a
a=b
b=c
print("交换后的元素为:{} {}".format(a,b))

请输入第一个数:2
请输入第二个数:3
交换后的元素为:3 2

4、冒泡排序:

#冒泡排序例题:
from random import random
arr=[]
for i in range(0,10) :
    arr . append(int(random()*100))
print("随机生成的10个数",arr)
for j in range (0,len(arr)-1):  #共总共比较的轮数
    flag=True
    for i in range(0,len(arr)-1-j):  #生 每轮比较的次
        if arr[i] > arr[i + 1]:
            tmp=arr[i]
            arr[i]=arr[i+1]
            arr[i+1] =tmp
            flag=False
    if(flag):
        print(f"经过{
       j+1}轮比较,冒泡排序完成")
        break
print("10个数冒泡排序后的顺序为:",arr)

随机生成的10个数 [84, 86, 56, 44, 16, 88, 83, 51, 24, 48]
经过8轮比较,冒泡排序完成
10个数冒泡排序后的顺序为: [16, 24, 44, 48, 51, 56, 83, 84, 86, 88]

你可能感兴趣的