python中的循环嵌套结构例题_python中嵌套循环练习题

python中嵌套循环练习题

1.打印九九乘法表:

方法一:

for i in range(1,10):

for j in range(1,10):

print(f’{i}{j}={i * j}’, end=’\t’)

print()

方法二:

for i in range(1, 10):

for j in range(1, i+1):

print(str(j)+‘x’+str(i)+’=’+str(ij)+’\t’, end=’’) # ‘\t’:间隔为tab键的长度 end=’’,表示不换行

print() # 换行

运行结果如下:

2.在1-100之间,缝“7”拍腿游戏:(计算着这个范围内出现了几次7)

方法一:

count = 0

for i in range(1, 101):

j = str(i)

if ‘7’ in j:

count += 1 # 统计遇到了几次7

continue # 当遇到7就跳过进行下一次循环

print(count)

方法二:

total = 99

for i in range(1,100):

if i%10 == 7:

continue

else:

string = str(i)

if string.startswith(‘7’): # 判断是否以7开头

continue

total -= 1

print(total)

3.利用嵌套循环打印图形:

打印一个等腰三角形:

rows = int(input(‘请输入一个正整数:’))

for a in range(0, rows): # 循环层数

for i in range(0, rows-a): # 空格数

print(’ ‘, end=’’) # 循环输出空格

for j in range(0, 2a+1): # 循环输出星星

print(’’, end=’’)

print(’’)

运行结果:

4.打印一个菱形,将上面三角形倒过来打印,再合并在一起:

打印上部分

line = 5 # 定义层数为5层

for i in range(1, line+1): # 遍历层数

for j in range(0, line-i): # 遍历空格

print(’ ‘, end=’’) # 打印空格

for a in range(0, 2i-1): # 遍历星星数

print(’’, end=’’) # 打印出**

print(’’) # 换行

打印下半部分:

row = 7 # 定义一个变量用来控制星星的个数

for i in range(1, line): # 遍历层数

for j in range(0, i): # 遍历空格

print(’ ‘, end=’’) # 打印空格

for a in range(0, row): # 遍历星星数

print(’*’, end=’’) # 打印出**

row = row-2

print(’’)

方法二:

for a in range(1, 10):

if a == 1 or a == 9:

print(" "4+""1)

elif a == 2 or a == 8:

print(" "3+""3)

elif a == 3 or a == 7:

print(" "2+""5)

elif a == 4 or a == 6:

print(" "1+""7)

else:

print(""9)

运行结果:

5.打印1-1000之间的水仙花数,例如13+53+3**3=153

for num in range(100, 1000):

low = num % 10

mid = num // 10 % 10

high = num // 100

if num == low ** 3 + mid ** 3 + high ** 3:

print(num)

运行结果:

6. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

方法一:

height = 100

long = height/2 # 每次弹起的高度

for i in range(2, 11): # 第二次开始,落地时的距离应该是反弹高度的2倍

height += 2long # 每次弹起又落下的总路程为:每次弹起的高度2再全部相加

long /= 2 # 每次弹起高度除以2,循环到最后为第10次

print(‘总高度’, height)

print(‘第10次反弹高度:’, long)

方法二:

a = 100

s = 0

for i in range(10):

s += a

a /= 2

if i == 9:

break

s += a

print(“第10次反弹”, a)

print(“第10次落地时,共经过”, s)

运行结果:

7.有1 2 3 4 这四个数字,设计程序计算能组成多少个互不相同且无重复数字的3位数?分别是什么?

for i in range(5):

for j in range(5):

for n in range(5):

if i!=j and i!=n and j!=n:

print(i100+j10+n)

8.循环录入学生的成绩并求出平均分,当录入负数时提示录入错误, 当输入over时提示结束,最后输出总成绩,平均分以及录入了多少个成绩?

avg = 0

count = 0

n = 0

while True:

course = input(‘请输入学生的成绩:’) # 此处先不定义数字类型

if course == ‘over’:

break

print(‘录入结束!’)

if int(course) < 0:

print(‘录入错误,请重新输入:’)

continue

count += int(course)

n += 1

avg = count/n

print(‘学生平均成绩是:’, avg)

方式二:

zh=0

cs=0

while True:

grade = input(‘请输入学生成绩:’)

if grade==‘over’:

print(‘录入结束!’)

break

elif float(grade)<0:

print(‘录入错误’)

elif float(grade)>0:

zh+=float(grade)

cs=cs+1

print(“总成绩为:”,zh,“平均成绩为:”,round(zh/cs),“总共录入”,cs,“个学生成绩”)

运行结果:

9.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

方法一:

for i in range(1, 1000):

for j in range(1, 1000):

for k in range(1, 1000):

if i + 100 == jj and i +268 == kk:

print(j, k)

print(i)

方法二:

for i in range(1, 1000):

for j in range(1, 1000):

if jj == i+100:

for k in range(1, 1000):

if(j+k)(j+k) == i+168:

print(j, k)

print(i)

break

10,冒泡排序:是一个很典型的嵌套循环。对列表中的数据,两两比较,将较小的数放在较大数的前面。比如对于列表a = [11, 5, 7, 3, 9]进行冒泡排序:主要关注排序几趟i,每趟几次j,比较相邻数据,调换位置

第一趟:a = [5, 11, 7, 3, 9]

a = [5, 7, 11, 3, 9]

a = [5, 7, 3, 11, 9]

a = [5, 7, 3, 9, 11]

比较了4次

第二趟: a = [5, 7, 3, 9, 11]

a = [5, 3, 7, 9, 11]

a = [5, 3, 7, 9, 11]

比较了3次

第三趟: a = [3, 5, 7, 9, 11]

a = [3, 5, 7, 9, 11]

比较了2次

第四趟: a = [3, 5, 7, 9, 11]

比较了1次

代码如下:

for i in range(len(a)-1):

for j in range(len(a)-i-1):

if a[j] > a[j+1]: # 将大于改成小于,列表将会变成降序。

a[j], a[j+1] = a[j+1], a[j] # 调换位置

print(a)

你可能感兴趣的:(python中的循环嵌套结构例题_python中嵌套循环练习题)