python 100例-python100例

#输入某年某月某日,判断这一天是这一年的第几天?

#斐波那契数列[0,1,1,2,3,5,8,13...]

li = [0,1]

for i in range(2,15):

# li[i] = li[i-1] + li[i-2]

li.append(li[i-1] + li[i-2])

print(li)

#乘法表

for i in range(1,10):

# print() 下面的print也可以放在这里 还可以直接不输入空-"’

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

print("%s*%s=%s"%(i,j,i*j),end=' ')

print('')

#打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

#例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

for i in range(100,1000):

for j in range(1,10):

# j*100+j*10+j=i

for k in range(0,10):

for l in range(0,10):

if i == j ** 3 + k ** 3 + l ** 3 and i == j * 100 + k * 10 + l:

# if i==j**3 + k**3 + l**3 and i==j*100+k*10+l and j!=0:

print(i)

for n in range(100,1000):

i = n/100

j = n/10%10

k = n/10

if n == (i ** 3 + j ** 3 + k ** 3):

print(n)

#14

#将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

m = input("请输入一个正整数:")

n = int(m)

print("{}=".format(n),end='')

if n in [1]:

print("{}".format(n),end='')

while n not in [1]: #循环保证递归

for k in range(2,n+1):

if n%k==0:

n=int(n/k)

if n==1:

print(k)

else:

print("{}*".format(k),end='')

break #跳出循环 确保每次k从2开始循环 不然k会每次都增加1

#暂停一秒输出,并格式化当前时间。

import time

# print(time.time()) #时间戳 1559124252.7110486

# print(time.localtime(time.time())) #结构化时间

# print(time.gmtime(time.time())) #结构化时间

print(time.strftime('%Y-%M-%D %H:%M:%S',time.localtime(time.time())))

# 暂停一秒

time.sleep(1)

print(time.strftime('%Y-%M-%D %H:%M:%S',time.localtime(time.time())))

17输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

s= input("请输入:")#print(s[1])#print(len(s))#alpha,digit,space,other = 0

l=alpha=digit=space=other =0while l

alpha+= 1

#l += 1

elifs[l].isdigit():

digit+= 1

#l += 1

elifs[l].isspace():

space+= 1

#l += 1

else:

other+= 1

#l += 1

l += 1

print("字母%s 数字%s 空格%s 其他%s"%(alpha,digit,space,other))

18求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制from functools importreduce

a= int(input("输入a:"))

n= int(input("输入n:"))

li=[]

Tn=0

Sn=0for i inrange(0,n):

Tn= Tn +a

a*= 10li.append(Tn)

Sn= reduce(lambda x,y:x+y,li)#Sn = lambda x,y:x+y,li

print("Sn=",Sn)

19一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

sum=0for i in range(0,1001):

sum= 0 #每换一个i sum必须从0开始

li=[]for j in range(1,i):if i%j ==0:

sum= sum +j

li.append(j)#if sum == i:

#print(i, li) #输出结果有24 [1, 2, 3, 4, 6, 8] 很明显少了12 因为j=8时已经满足sum = i,j不再增加

if sum == i: #所以得等到所有j遍历完再判断sum

print(i,li) #输出结果不再有24 有0[] 哈哈哈哈xswl 改i范围 从1开始 不能改j为从0开始 除数不能为0

#break

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

li= [100]defball_hei(n):

hei= 100 / (2**n)for i in range(1,n):#meter = 100 / (2**i)

#li.append(meter*2)

li.append(100/i)#print(hei,li)

sum = reduce(lambda x,y:x+y,li)print("第%s次反弹高度为%s米,落地时经过%s米"%(n,hei,sum))

ball_hei(10)

22两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

D= ['x','y','z']for i inD:if i != 'x' and i != 'z':#C.append(i)

print("c --",i)

D.remove(i)#print(D)

for j inD:if j != 'x':print("a --", j)

D.remove(j)print("b --",D[0])for a in ['x','y','z']:for b in ['x', 'y', 'z']:for c in ['x', 'y', 'z']:if(a!=b)and(b!=c)and(c!=a) and (a!='x') and (c!='x') and (c!='z'):print( 'a--%s,b--%s,c--%s' %(a,b,c))23打印出如下图案(菱形):

s= '*'n= int(input("输入层数(奇数):"))for i in range(1,n+1,2):

t= (n-i)//2

print(' '*t + s*i + ' '*t)for i in reversed(range(1,n-1,2)):

t= (n-i)//2

print(' '*t + s*i + ' '*t)

s= '*'

for i in range(1, 8, 2):print((s*i).center(7))for i in reversed(range(1, 6, 2)):print((s*i).center(7))24 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。from functools importreduce

b= 2a= 1s=0

li=[]for i in range(1,21):#s += b / a

li.append(b /a)

b,a= a+b,bprint(li)print(reduce(lambda x,y:x+y,li))#print(s)

25利用递归方法求5!

sum=0defJiech(n):if n == 1:

sum= 1

else:

sum= n * Jiech(n-1)returnsumprint(Jiech(5))30一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

s= input("请输入一个5位数:")

flag= 1

for i inrange(len(s)):if s[i] != s[-i-1]: #要验证不满足的 如果验证满足的 有一位对称则会判定为回文 比如 12341

flag =0break

ifflag:print("是回文")else:print("不是回文")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值