1.打印10以内偶数:位运算

for i in range(10):
		if not i & 0x01:
				print(i)

2.给定一个不超过5位的正整数,判断其有几位(使用input函数)

方法一:正常逻辑处理

a = int(input("Please enter a numer: "))
if a < 0:
		print('Error')
if a < 10:
		print(1)
elif a < 100:
		print(2)
elif a < 1000:
		print(3)
elif a < 10000:
		print(4)
elif a < 100000:
		print(5)
else:
		print('Error')

方法二:折半

val=input("Please enter a numer: ")
val=int(val)
if val>=1000:
		if val>=10000:
				print("这是五位数")
		else:
				print("这是四位数")
else:
		if val>=100:
				print("这是三位数")
		elif val>=10:
				print("这是两位数")
		else:
				print("这是一位数")

方法三:字符串处理

a = str(int(input("Please enter a number: ")))
print(len(a))

3.给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字

方法一:

val=input('>>>')      
val=int(val)
print(val)
if val>=1000:
		if val>=10000:
				num=5
		else:
				 num=4
else:           
		if val>=100:
				num=3
		elif val>=10:
				num=2
		else:
				 num=1
print(num)
pre=0
for i in range(num,0,-1):
		cur=val//(10**(i-1))
		print(cur-pre*10)
		pre=cur

方法二:

num =int(input("请输入一个数字:"))
print(num)
countnum=0
while True:
		print(num%10)
		num=num//10
		countnum+=1
		if num==0:
				break

print("您输入的位数是:",countnum) 方法三:

c=int(input(">>>"))
w=10000
x=length
flag =False

while w:
		t=c//w
		if flag:
				print(t)
		else:
				if t:
						print(t)
						flag=True
				else:
						x -= 1
		c %= w
		w//=10
print("这个数的位数是",x)

4.打印一个边长为n的正方形

方法一:

a = int(input("Please enter a number: "))
for i in range(a):
		if i == 0 or i == a-1:
				print('*' * a )
		else:
				print('*' + ' ' * (a - 2) + '*')

方法二:

a = int(input("Please enter a number: "))
print('*' * a)
for i in range(a - 2):
		print('*' + ' ' * (a - 2) + '*')
else:
print('*' * a)

方法三:

a = int(input("Please enter a number: "))
top = mid = '*'
for i in range(a - 1):
		top += '\t*'
		mid += '\t'
else:
		mid += '*'
		print(top)

for i in range(a - 2):
		print('\n')
		print(mid)
else:
		print('\n')
		print(top)

5.求100内所有奇数的和(2500)

sum = 0
for i in range(1,100,2):
		sum += i
print(sum)    

6.判断学生成绩,成绩等级A~E。其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'

a = int(input('Please enter a score: '))
if a > 79:
		if a >= 90:
				print('A')
		else:
				print('B')
elif a >= 70:
		print('C')
elif 60 <= a < 69:
		print('D')
else:
		print('E')

7.求1到5阶乘之和

方法一:

sum = 0
for i in range(1,6):
		mul = 1
		for j in range(1,i + 1):
				mul *= j
		sum += mul
print(sum)

方法二:效率高

sum = 0
mul = 1
for i in range(1,6):
		mul *= i
		sum += mul
print(sum)

8.求圆的面积和周长

r=int(input(">>>"))
print("area="+str(3.14*r*r))
print("circumference="+str(2*3.14*r))

9.输入若干个数,打印出最大值,如果输入为空,退出程序 m = int(input(">>>")) while True: c = input(">>>") if c: n = int(c) if n > m : m = n print("max is",m) else: break

10.输入n 个数 求每次输入的算术平均数。

count = 0
sum = 0
while True:
	num = int(input(">>>"))
	count += 1
	sum += num
	print("avg is ",sum / count)
	if num == 0:
			break

11.给一个数,判断它是否是素数(质数)

a=int(input("Please enter a number: "))
for i in range(2,int(a ** 0.5) + 1):
		if a % i != 0:
				continue
		elif a % i == 0:
				print(("N: %d") % (i))
				break        
else:
		print("Yes,prime")

12.打印九九乘法表

方法一:

for i in range(1,10):
		line = ''
		for j in range(1,i + 1):
				line = line + ('%d*%d=%2d ') % (j,i,i*j)
		print(line)

方法二:列表解析式

[print("{}*{}={:<3}".format(j,i,i*j),end='\n' if i ==j else '') for i in range(1,10) for j in range(1,i+1)]

13.打印菱形

方法一:

for i in range(-3,4):
		if i<0:
				prespace=-i
		else:
				prespace=i
		print(' '*prespace + '*'*(7-prespace*2))

方法二:

n =int(input(">>>"))
e = n//2

for i in range(-e,e+1):
		if i < 0 :
				p = -i
		else:
				p =i
		print(" "*p+ "*"*(n-2*p))

14.打印闪电图形 方法一:

for i in range(-3,4):
		if i<0:
				print(' '*(-i) + '*'*(4+i))
		elif i>0:
				print(' '*3 + '*'*(4-i))
		else:
				print('*'*7)

方法二:

n =int(input(">>>"))
e = n//2

for i in range(-e,e+1):
		if i < 0 :
				print(" "*(-i)+'*'*((e+1)+i))
		elif i > 0:
				print(" "*e + '*'*((e+1)-i))
		else:
				print("*"*n)

15.打印对顶三角形 方法一:

for i in range(-3,4):
		x = -i if i < 0 else i
		print(" "*(3-x)+"*"*(2*x+1))

方法二:

n =int(input(">>>"))
e = n//2
for i in range(-e,e+1):
		x = -i if i < 0 else i
		print(" "*(e-x)+"*"*(2*x+1))

16.打印100以内的斐波那契数列

a=0
b=1
print(1)
while True:
		c=a+b
		if c>100:
				break
		a=b
		b=c
		print(c)

17.求斐波那契数列第101项 573147844013817084101 方法一: a = 0 b = 1 print(0,a) print(1,b) index = 2 while True: c = a + b print(index,c) if index == 101: break a = b b = c index += 1

方法二:

a = 0
b = 1
for _ in range(100):
		a, b = b , a+b
print(b)

18.求10万内的所有素数 9592

方法一:(先简单化)

for x in range(2,100):
		for i in range(2,x):
				if x%i==0:
						break
		else:
				print(x,end=" ")

方法二:

for x in range(3,10000,2):
		for i in range(3,int(x**0.5)+1):
				if x%i==0:
						break
		else:
				print(x,end=" ")

方法三:

import time
start= time.clock()
number = 100000
count = 2
for num in range(4,number):
		if num%6 != 1 and num%6 != 5:
				continue
		else:
				snum = int(num**0.5+1)
				for i in range(5,snum):
						if not num%i:
								break
				else:
						count += 1
print(count)
end=time.clock()
print("run:{}".format(end-start))

方法四:(利用素数特性:大于3的素数形式都是6N-1和6N+1)

import time
start= time.clock()
number = 100000
count = 2
for num in range(4,number):
		if num%6 != 1 and num%6 != 5:
				continue
		else:
				snum = int(num**0.5+1)
				for i in range(5,snum):
						if not num%i:
								break
				else:
						count += 1
print(count)
end=time.clock()
print("run:{}".format(end-start))

19.反向乘法表:

方法一:

for i in range(1,10):
		line = ''
		for j in range(i,10):
						line += '%d*%d=%2d ' % (i,j,j * i)
		print(' ' * (7 * i - 6) + line)

方法二:

for i in range(1,10):
		line = ''
		for j in range(i,10):
						line += '%d*%d=%2d ' % (i,j,j * i)
		print('{:>63}'.format(line))

方法三:

for i in range(1,10):
		line = ''
		for j in range(i,10):
						line += '{}*{}={:<{}} '.format(i,j,j * i,2 if j<4 else 3)
		print('{:>70}'.format(line))

20.猴子吃桃:

n=1
for i in range(1,10):
		n=(n+1)*2
print(n)