Python-菜鸟练习100题
记录python学习的每⼀刻:
eg1:有四个数字:1、2、3、4,能组成多少个互不相同且⽆重复数字的三位数?各是多少?
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(i,j,k)
eg2:企业发放的奖⾦根据利润提成。利润(I)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可提成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润I,求应发放奖⾦总数?
i =float(input('请输⼊您的利润额:'))
arr =[1000000,600000,400000,200000,100000,0]
rat =[0.01,0.015,0.03,0.05,0.075,0.1]
r =0
for idx in range(1,6):
if i > arr[idx]:
r+=(i-arr[idx])*rat[idx]
i=arr[idx]
print('发放奖⾦总数为:',r)
eg3:⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?
import math
a =int(math.sqrt(168))+1
for i in range(1,a):
if168% i ==0:
j =168/ i
if(i+j)%2==0and(i-j)%2==0:
m =(i+j)/2
n =(i-j)/2
x = n*n-100
print(x)
eg4:输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?
year =int(input("请输⼊年份:"))
month =int(input("请输⼊⽉份:"))
day =int(input("请输⼊⽇:"))
sum=0
arr =[0,31,59,90,120,151,181,212,243,273,304,334]
if0< month <=12:
sum= arr[month-1]
else:
print("您输⼊的数据有误")
sum=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=sum+1
print("It is the %dth day"%sum)
eg5:输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出
value =[]
for i in range(1,4):
x =int(input("请输⼊值:"))
value.append(x)
for k in range(0,2):
if value[k]> value[k+1]:
t = value[k+1]
value[k+1]= value[k]
value[k]= t
print(value)
eg6:斐波那契数列
def fib(n):
if n ==0:
return0
if n==1or n==2:
return1
else:
return fib(n-1)+fib(n-2)
print(fib(10))
eg7:将⼀个列表的数据复制到另⼀个列表中
import re
a =input("请输⼊数组a:")
print(type(re.split('\s',a)))
b =list(map(int,re.split('\s',a)))
s = a[:]
print(s)
eg8:输出 9*9 乘法⼝诀表
for i in range(1,10):
print()
for j in range(1,i+1):
print("%d * %d = %d"%(i,j,i*j),end=" ")
eg9:暂停⼀秒输出
import re
import time
a =input("请输⼊字符串:")
s =list(map(int,re.split('\s',a)))
for i in range(len(s)):
print(s[i])
time.sleep(1)
eg10:暂停⼀秒输出,并格式化当前时间
import 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())))
print(type(time.time()))
print(type(time.localtime()))
print(type(time.localtime(time.time())))
eg11:古典问题:有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦长到第三个⽉后每个
⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个⽉的兔⼦总数为多少?
def fib(n):
if n ==1or n ==2:
return2
else:
return fib(n-1)+fib(n-2)
t =int(input("请输⼊天数:"))
print("第%d天后共有兔⼦%d只"%(t,fib(t)))
eg12:判断101-200之间有多少个素数,并输出所有素数
import math
sum=0
leap =1
for i in range(101,201):
for j in range(2,int(math.sqrt(i+1))+1):
管理系统名称大全if i % j ==0:
leap =0
break
if leap ==1:
print(i)
sum+=1
leap =1
print("101~201之间共有%d个素数"%sum)
eg13:打印出所有的"⽔仙花数",所谓"⽔仙花数"是指⼀个三位数,其各位数字⽴⽅和等于该数本⾝。例如:153是⼀个"⽔仙花数",因为153=1的三次⽅+5的三次⽅+3的三次⽅
for i in range(100,1000):
n = i //100#百位数
m = i %100//10#⼗位数
k = i %10#个位数
if n*n*n + m*m*m + k*k*k == i:
print(i)
eg14:将⼀个正整数分解质因数。例如:输⼊90,打印出90=233*5
def reduceNum(n):
print("{} =".format(n),end=" ")
if not isinstance(n,int)or n<=0:
internet access是什么意思print("请输⼊⼀个正确的数字!")
exit(0)
elif n ==1:
print("{}".format(1),end=" ")
while n not in[1]:
for i in range(2,n+1):
if n%i ==0:
n //= i
if n ==1:
print(i)
else:
print("{} *".format(i),end=" ")
# break
reduceNum(int(input("input a num:")))
eg15:利⽤条件运算符的嵌套来完成此题:学习成绩>=90分的同学⽤A表⽰,60-89分之间的⽤B表⽰,60分以下的⽤C表⽰
score =int(input('输⼊分数:\n'))
if score >=90:
grade ='A'
elif score >=60:
grade ='B'
else:
grade ='C'
print('%d 属于 %s'%(score, grade))
eg16:输出指定格式的⽇期
import datetime
if __name__ =='__main__':
# 输出今⽇⽇期,格式为 dd/mm/yyyy。更多选项可以查看 strftime() ⽅法
print(day().strftime('%d/%m/%Y'))
# 创建⽇期对象
miyazakiBirthDate = datetime.date(1941,1,5)
mid函数第二个参数代表print(miyazakiBirthDate.strftime('%d/%m/%Y'))
# ⽇期算术运算
miyazakiBirthNextDay = miyazakiBirthDate + datetime.timedelta(days=1)
print(miyazakiBirthNextDay.strftime('%d/%m/%Y'))
# ⽇期替换
miyazakiFirstBirthday = place(ar +1)
print(miyazakiFirstBirthday.strftime('%d/%m/%Y'))
塞尔维亚vs瑞士eg17:输⼊⼀⾏字符,分别统计出其中英⽂字母、空格、数字和其它字符的个数
import string
s =input('请输⼊⼀个字符串:\n')
letters =0
space =0
digit =0
others =0
for c in s:
python基础代码100例if c.isalpha():
letters +=1
elif c.isspace():
space +=1
elif c.isdigit():
digit +=1
else:
others +=1
print('char = %d,space = %d,digit = %d,others = %d'%(letters,space,digit,others))
eg18:求s=a+aa+aaa+aaaa+aa…a的值,其中a是⼀个数字。例如2+22+222+2222+22222(此时共有5个数相加),⼏个数相加由键盘控制
def sum(n):
total =1
if n ==1:
total =10*(n-1)+1
else:
total = total*n+sum(n-1)*10
return total
a =int(input("a:"))
b =int(input("b:"))
print(a*sum(b))
eg19:⼀个数如果恰好等于它的因⼦之和,这个数就称为"完数"。例如6=1+2+3.编程出1000以内的所有完数
def wanshu():
for i in range(1,1000):
s = i
t型钢厂家sum= i
for j in range(1,i):
if i%j ==0:
sum-= j
else:
continue
if sum==0:
print(s)
wanshu()
eg20:⼀球从100⽶⾼度⾃由落下,每次落地后反跳回原⾼度的⼀半;再落下,求它在第10次落地时,共经过多少⽶?第10次反弹多⾼?
def luoti(high,n):
s =0
total =0
t = high
if n ==1:
s = high/2
total = high + s
else:
for i in range(1,n+1):
s = high/2
high = s
total = total + s*2
total = total-2*s+t
print("第%d次落地时,共经过%f⽶,第%d反弹%f⽶"%(n,total,n,s))
luoti(100,10)
eg21:猴⼦吃桃问题:猴⼦第⼀天摘下若⼲个桃⼦,当即吃了⼀半,还不瘾,⼜多吃了⼀个第⼆天早上⼜将剩下的桃⼦吃掉⼀半,⼜多吃了⼀个。以后每天早上都吃了前⼀天剩下的⼀半零⼀个。到第10天早上想再吃时,见只剩下⼀个桃⼦了。求第⼀天共摘了多少
n =1
for day in range(9,0,-1):
m =(n+1)*2
n = m
print(m)
eg22:两个乒乓球队进⾏⽐赛,各出三⼈。甲队为a,b,c三⼈,⼄队为x,y,z三⼈。已抽签决定⽐赛名单。有⼈向队员打听⽐赛的名单。a说他不和x⽐,c说他不和x,z⽐,请编程序出三队赛⼿的名单

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。