1,2,3,4能组成多少个互不相同且无重复的3位数字,各是多少
for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j and i!=k and j!=k: print (str(i)+str(j)+str(k))
总结:用for in range()取到1到4里面的每个数字,因为要组成3位数 所以定义3个循环嵌套,
从最里层开始依次跟每一层进行循环,设定条件语句,如果三个变量都不相同时,(条件同时成立用and)
则输出每一个变量值并转为str()字符串形式相加
求1到100内的所有质数
for i in range(2,101):
for j in range(2,i): if i%j==0: break else: print(i)
总结:首先了解质数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,
用 for in range()遍历每个数字,从2开始到100结束,定义两个变量相除看是否能被整除,
不能被整除的则是质数输出,第二个循环中的结束位置为第一个变量名即可,
因为循环从内部 j 开始逐个去跟 i 中每一个数字相除,如果j 大于i 一定不能被整除,
就不需要继续循环后面的数字
所以结束位置不需定义101 直接设定i 即可 ,一旦能整除立即break跳出循环 进行下一次新的循环,
一旦没有整除,没有执行break 则输出else语句 ,注意嵌套缩进
for else用法
:当循环中有break时,如果没有执行if 则执行else
求两个数的最小公倍数 最大公约数
a=int(input("输入第一个数字")) b=int(input("输去第二个数字")) for i in range(b,0,-1): if a%i==0 and b%i==0: print(str(i)+"是最大公约数")
break # print(str(a*b//i)) (公式方法 最大公约数求最小公倍数方法a*b//最大公约数)
#求出最大公约数后也可用数学固定公式直接求出最小公倍数的值,
#即a*b整除最大公约数 即可得出最小公倍数,
#可代替下面求最小公倍数写法
for i in range(a,a*b+1): if i%a==0 and i%b==0: print(str(i)+"是最小公倍数") break
总结: 公倍数是能同时把ab整除的 公约数是能同时被ab整除的
先写公约数,定义两个变量设为整型输入,用for循环定义a或b的值为起始值 到0结束。每次递减一次循环
(因为同时可以被ab整除的一定是小于他们自身的数,如果大于ab自身则无法被整除,
所以从a或b的值开始循环直到1结束,因为求最大公约数所以-1 步长每次减一,)
一旦可以同时被a ,b整除 %等于0 即brake 跳出循环
公倍数 也是定义a或b为起始值,到它们自身相乘为结束值,(因为可以同时整除a和b 一定是大于他们自身,并且不会超过它们的相乘,)步长不设定默认每次递增加1,执行语句块 如果同时可以整除a和b 则break跳出循环
求一个99乘法表
for i in range(1,10): for j in range(1,i+1): print (j,"*",i,"=",j*i,end=" ") print()
总结:嵌套循环 用for in ()定义1到9 依次遍历循环,内部循环从1开始 到外部的循环次数加一截止
在输出每次两个循环的本身值 后相乘 并不换行输出
(end=“”)指不换行 ,外层 print()输出空值 是换行
求5名学生各3科成绩的平均成绩
for i in range(1,6): input("请输入名字") a=0 for j in range(1,4): a=a+int(input("请输入第"+str(j)+"科考试成绩 ")) print(i,"该学生平均成绩为 ",a/3)
总结:设定一个for循环,定义循环5次,定义一个变量为空,内部嵌套循环定义为3次,用空变量接受3次循环输入的总合加上自身空值,输出总合除以3的平均成绩 ,在进行第二次循环得出平均成绩,直到5次
(嵌套循环先执行最内部循环,循环完内部在循环外部,如:内部定义循环(1,3)两次,
外部定义循环(1,4)三次, 则先循环完内部2次 在循环外部第1次,然后循环内部2次 在循环外部第2次,
以此类推,循环虐我千百遍....时而明白时而蒙圈)
————处女座就是啰嗦,今日完。