Python100道基础⼊门练习题(附答案)
实例001:数字组合
题⽬ 有四个数字:1、2、3、4,能组成多少个互不相同且⽆重复数字的三位数?各是多少?
程序分析 遍历全部可能,把有重复的剃掉。
num=0
for a in range(1,5):
for b in range(1,5):
for c in range(1,5):
if((a!=b)and(a!=c)and(b!=c)):
print(a,b,c)
num+=1
print(num)
实例002:“个税计算”
题⽬ 企业发放的奖⾦根据利润提成。利润(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,求应发放奖⾦总数?
程序分析 分区间计算即可。
1 profit=int(input('Show me the money: '))
2 bonus=0
3 thresholds=[100000,100000,200000,200000,400000]
4 rates=[0.1,0.075,0.05,0.03,0.015,0.01]
5 for i in range(len(thresholds)):
6 if profit<=thresholds[i]:
7 bonus+=profit*rates[i]
8 profit=0
9 break
10 else:
11 bonus+=thresholds[i]rates[i]
12 profit-=thresholds[i]
13 bonus+=profit rates[-1]
14 print(bonus
1
2
3
腾讯dcache4
5
6
7
8
9
10
11
12
13
14
15
实例003:完全平⽅数
题⽬ ⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?
程序分析 因为168对于指数爆炸来说实在太⼩了,所以可以直接省略数学分析,⽤最朴素的⽅法来获取上限:
n=0
while (n+1)**2-n*n<=168:
n+=1
print(n+1)
85
js跳转指定页面clone 1 1 3 指令1
2
3
4
5
6
7
8
思路是:最坏的结果是n的平⽅与(n+1)的平⽅刚好差168,由于是平⽅的关系,不可能存在⽐这更⼤的间隙。⾄于判断是否是完全平⽅数,最简单的⽅法是:平⽅根的值⼩数为0即可。
结合起来:
n=0
while (n+1)**2-n*n<=168:
n+=1
for i in range((n+1)2):
if i0.5int(i**0.5) and (i+168)**0.5int((i+168)**0.5):
print(i-100)
1
2
3
4
5
6
7
实例004:这天第⼏天
题⽬ 输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?
程序分析 特殊情况,闰年时需考虑⼆⽉多加⼀天:
def isLeapYear(y):
return (y%4000 or (y%40 and y%100!=0))
DofM=[0,31,28,31,30,31,30,31,31,30,31,30]
res=0
year=int(input(‘Year:’))
month=int(input(‘Month:’))
day=int(input(‘day:’))
if isLeapYear(year):
DofM[2]+=1
for i in range(month):
res+=DofM[i]
print(res+day)
1
2
3
4
5
6
7
8
9
10
11
12
实例005:三数排序
题⽬ 输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出。
程序分析 练练⼿就随便个排序算法实现⼀下,偷懒就直接调函数。
‘’’
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:778463939
结构体动态数组寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!‘’’
raw=[]
for i in range(3):
x=int(input('int%d: '%(i)))
raw.append(x)
for i in range(len(raw)):
for j in range(i,len(raw)):
if raw[i]>raw[j]:
raw[i],raw[j]=raw[j],raw[i]
print(raw)
raw2=[]
for i in range(3):
x=int(input('int%d: '%(i)))
raw2.append(x)
print(sorted(raw2))
1
2
3
4
5
6
7
8
9
10
11aide源码大全下载
12
13
14
15
16
17
18
19
20
21
实例006:斐波那契数列
题⽬ 斐波那契数列。
程序分析 斐波那契数列(Fibonacci sequence),从1,1开始,后⾯每⼀项等于前⾯两项之和。图⽅便就递归实现,图性能就⽤循环。递归实现
def Fib(n):
return 1 if n<=2 else Fib(n-1)+Fib(n-2)
print(Fib(int(input())))
朴素实现
target=int(input())
res=0
a,b=1,1
for i in range(target-1):
a,b=b,a+b
print(a)
1
2
3
4
5
6
7
8
9
10
11
12
实例007:copy
题⽬ 将⼀个列表的数据复制到另⼀个列表中。
程序分析 使⽤列表[:],拿不准可以调⽤copy模块。
import copy
a = [1,2,3,4,[‘a’,‘b’]]
b = a # 赋值
c = a[:] # 浅拷贝
d = py(a) # 浅拷贝
e = copy.deepcopy(a) # 深拷贝
a.append(5)
a[4].append(‘c’)
print(‘a=’,a)
print(‘b=’,b)
少儿python入门教程print(‘c=’,c)
print(‘d=’,d)
print(‘e=’,e)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论