因为已经学习过C语言,而python的一些语法与C语言大同小异,所以学习python采用刷题巩固法,从简单题开始刷起: ==1.==有1、2、3、4这四个数字,求能组成多少个互不相同且无重复数字的三位数,分别是多少?
代码:
n=0 for i in range(1,5): for j in range(1,5): for k in range(1,5): if(i!=j)and(j!=k)and(k!=i): n=n+1 print(i*100+j*10+k) print(n)==2.==一个整数,它加上100后是一个完全平方数,再加上168之后,也是一个完全平方数,求这个整数是多少?
代码:
import math for i in range(1,100000): x=int(math.sqrt(i+100)) y=int(math.sqrt(i+268)) #是在加了100的基础上再加168 if(x*x==i+100)and(y*y==i+268): print(i)3输入某年某月某日,判断这一天是这一年的第几天
代码:
year=int(input('year:\n')) month=int(input('month:\n')) day=int(input('day:\n')) months=(0,31,59,90,120,151,181,212,243,273,304,334) if 0<=month<=12: sum=months[month-1] sum+=day leap=0 if(year%400==0)or((year%4==0)and(year%100!=0)): leap=1 if(leap==1)and(month>2): sum+=1 print('it is the %dth day.'%sum) else: print('input error')``` **==4.==** 输入三个整数x、y、z,把这三个整数从下到大输出 ==代码:== ```python I=[] for i in range(1,4): x=int(input('请输入数据:\n')) I.append(x) I.sort() print(I)==5.==输出9*9乘法口诀表
代码:
for i in range(1,10): for j in range(1,10): if(i>=j): result=i*j print('%d*%d=%-3d'%(j,i,result),end="") print("\n")6..打印所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身:
代码:
for n in range(100,1000): i=n/100 j=(n-i*100)/10 k=n%10 if(n==i*i*i+j*j*j+k*k*k): print(n) ``` 这个代码没有输出,也不知道哪里错了,很奇怪! 噢嚯嚯 ,发现错因了,python在对数据的运算时不需要先定义,但是它会自动识别,比如两个数相除,整数就会输出整数,小数就会输出小数,然后再运用相除和求余的办法分离个位、十位、百位就非常不对。所以这里要设定i、j、k都是整数,才能有正确的输出 ```python for n in range(100,10000): i=int(n/100) j=int((n-i*100)/10) k=n%10 if(i*i*i+j*j*j+k*k*k==n) print(n) ``` ==7.==输出100-200之间的所有素数及其个数 素数就是除了能被1和本身整除外,不能被其他任何数整除的数。 求素数可以简化成:看这个数n能否被从2开始,到sqrt(n)整除,如果有这样的数存在,则这个数不是素数,如果没有,则是素数。 代码: ```python import math n=0 for i in range(100,201): k=0 for j in range(2,int(math.sqrt(i))+1): if(i%j==0): k=1 break if(k==0): n=n+1 print(i) print(n)