(1)输出99乘法表
1*1
1*2 2*2
1*3 2*3 3*3
1*4 2*4 3*4 4*4
1*5 2*5 3*5 4*5 5*5
1*6 2*6 3*6 4*6 6*6
1*7 2*7 3*7 7*7
1*8 2*8 3*8 7*8 8*8
1*9 2*9 3*9 7*9 8*9 9*9
解题:竖向找规律
for i in range(1,10):
if i==1:
for j in range(1,10):
print(i*j)
else:
for item in range(2,10):
print(i*item)
其他答案:(横向找规律)
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={} ".format(i,j,i*j),end=' ')#不换行输出
print()
(2)经典冒泡算法
利用for循环,完成a=[1,7,4,89,34,2]的冒泡排序
冒泡排序:小的排前面,大的排后面
冒泡: 相邻之间的2个数据进行比较,小的和大的互换位置,再拿互换后的小数据依次再和后面的数据比较,每次比较后都将小的和大的互换位置。(备注:最多比较n-1轮,n代表元素个数)
a=[1,7,4,89,34,2]
第1轮比较:1和7比较,1小,不用换位置,1再和4比较,1小,不用换位置,一次进行下去---》得到1最小。比较结果:
a=[1,7,4,89,34,2]
第2轮: 7和4比较,4小,4换到7的位置上,4和89比较,4小,不用换位置,4和34比较。不用换位置,4和2比较,2小,2换到4的位置上---》得到2最小
a=[1,2,7,89,34,4]
第3轮:7和89比较,不换位置,7和34比较,不换位置,7和4比较,4换到7的位置上
a=[1,2,4,89,34,7]
第4轮:89和34比较,34换到89位置上,34和7比较,7 换到34位置上
a=[1,2,3,4,7,89,34]
第5轮比较:89和34比较;34和89换位置
a=[1,2,3,4,7,34,89]
上面的思路是:每次比较出得到最小的那个数和后面的数一次比较
下面的思路是:每次比较初最大的那个数
a=[1,7,4,89,34,2]
第一轮:1和7比较,不用换位置,7和4比较,4和7换位置,7和89比价,89和7换位置,89和34比较,89和34换位置,89和2比较,89和2换位置
a=[1,4,7,34,2,89]
第二轮比较:1和4,不换,4和7不换,7和34不换,34和2换,34和89不换
a=[1,4,7,2,34,89]
第三轮:1和4不换,4和7不换,7和2换,7和34不换,34和89不换
a=[1,4,2,7,34,89]
第四轮:1和4不换,4和2换,4和7不换,7和34不换,34和89不换
a=[1,2,4,7,34,89]
解题:
temp=0
a=[1,7,4,89,34,2]
for i in range(len(a)):
for j in range(len(a)):
if a[i] >a[j+1]:
temp=a[i]
a[i]=a[j+1]
a[j+1]=temp
其他参考答案:
a=[1,7,4,89,34,2]
for i in range(len(a)-1):#用n-1来控制循环的次数
for j in range(len(a)-1):#每一次循环对两两相邻的数据进行比较并用if判断后,进行位置替换
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
打印结果:
[1,2,4,7,34,89]
(3)有1,2,3,4 这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别是什么?abc 且a!=b!=c
解题:
count=0
List=[]
for a in range(1,5):
for b in range(1,5):
for c in range(1,5):
if a!=b and b!=c and a!=c:
count+=1
num=a*100+b*10+c
List.append(num)
print("满足条件的数字有{}个:{}'.format(count,List))
(4)使用嵌套for循环输出如下直角三角型
*
**
***
****
*****
解题:
for i in range(1,6):
print(i* '*')#没结束一次循环,才会换行
其他参考答案:
for i in range(1,6):
for j in range(i):
print('*',end=' ')#每一层for循环结束后,才换行
print()
(5)使用嵌套for循环输出等边三角型(三个变均为5个*)
*
* *
* * *
* * * *
* * * * *
for i in range(1,6):
for j in range(i):
print(' ',end=' ')
print('* '*i)
打印结果:
*
* *
* * *
* * * *
* * * * *
解决思路:以左边议一条边充当直角三角型的斜边,打印出倒三角直角型