-
🍓9.暂停一秒输出
-
🍓10.格式化时间
-
结语💖
===================================================================
题目:
有四个数字:1、2、3、4,能组成多少个互不相同且⽆重复数字的
三位数?各是多少?
分析:
法一:遍历全部可能,把有重复的剃掉。
法二:⽤itertools中的permutations(排列)即可。
解法:
#法一:遍历全部可能,把有重复的剃掉。
total = 0
num_list = [1,2,3,4]
for i in num_list:
for j in num_list:
for k in num_list:
if (i!=j) and (i!=k) and (j!=k):
print(i,j,k)
total += 1
print(total)
#法二:⽤itertools中的permutations(表示排列)即可。
import itertools
total = 0
num_list = [1,2,3,4]
for i in itertools.permutations(num_list,3):
print(i[0],i[1],i[2])
total = total+1
print(total)
结果:
题目:
企业发放的奖⾦根据利润提成。利润(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 = int(input(“请输入当月利润:”))
if I<=100000:
bonus = I*0.1
elif I>=100000 and I<=200000:
bonus = 100000*0.1 + (I-100000)*0.075
elif I>=200000 and I<=400000:
bonus = 1000000.1 + 1000000.075+(I-200000)*0.05
elif I>=400000 and I<=600000:
bonus = 1000000.1 + 1000000.075 + 200000*0.05 + (I-400000)*0.03
elif I>=600000 and I<=1000000:
bonus = 1000000.1 + 1000000.075 + 2000000.05 + 2000000.03 + (I-600000)*0.015
else:
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (I-1000000)*0.01
print(bonus)
#法二:
profit=int(input('Show me the money: '))
bonus=0
thresholds=[100000,100000,200000,200000,400000]
rates=[0.1,0.075,0.05,0.03,0.015,0.01]
for i in range(len(thresholds)):
if profit<=thresholds[i]:
bonus+=profit*rates[i]
profit=0
break
else:
bonus+=thresholds[i]*rates[i]
profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)
结果:
题目:
⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完
全平⽅数,请问该数是多少?
完全平方数:若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。即如果一个正整数a是某一个整数b的平方,那么这个正整数a叫做完全平方数。完全平方数是非负数,零也可称为完全平方数,一个完全平方数的项有两个。举例:0、1、4、9、16、25、36、49都是完全平方数。
分析:
思路是:最坏的结果是n的平⽅与(n+1)的平⽅刚好差168,由于是平⽅的关
系,不可能存在⽐这更⼤的间隙。因为168对于指数爆炸来说实在太⼩了,所以可以直接省略数学分析,⽤最朴素的⽅法来获取上限。⾄于判断是否是完全平⽅数,最简单的⽅法是:平⽅根的值⼩数为0即可。
解法:
获取上限
n=0
while (n+1)**2-n*n<=168:
n += 1
#遍历找出结果
for i in range((n+1)**2):
if i0.5 == int(i0.5) and (i+168)**0.5 == int((i+168)**0.5):
print(i-100)
结果:
题目:
输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?
分析:
特殊情况,闰年时需考虑⼆⽉多加⼀天
解法:
#判断是否是润年的函数
def isLeapYear(y):
if((y%4000 or (y%40 and y%100!=0))):
return True
else:
return False
#把1到11月对应的天数写进列表中,列表零位存0
months_day = [0,31,28,31,30,31,30,31,31,30,31,30]
res = 0
year,month,day = map(int,input(“请输入年月日,中间用逗号隔开:”).split(“,”))
if isLeapYear(year):
months_day[2] += 1
for i in range(1,month):
res += months_day[i]
print(res+day)
结果:
题目:
输⼊任意个整数,请把这几个数由⼩到⼤输出。
分析:
练练⼿就随便找个排序算法实现⼀下,偷懒就直接调函数。
解法:
#法一:排序算法(选择排序)
num_list = list(map(int,input(“输入任意个数,以空格隔开:”).split(" ")))
for i in range(len(num_list)-1):
for j in range(i+1,len(num_list)):
if num_list[i]>num_list[j]:
t = num_list[j]
num_list[j] = num_list[i]
num_list[i] = t
print(num_list)
#法二:用内置函数sort对列表排序
num_list = list(map(int,input(“输入三个数,以空格隔开:”).split(" ")))
num_list.sort()
print(num_list
结果:
题目:
求斐波那契数列某一项的值。
分析:
斐波那契数列(Fibonacci sequence),从1,1开始,后⾯每⼀
项等于前⾯两项之和。图⽅便就递归实现,图性能就⽤循环。
解法:
#法一:递归
def Fib(i):
if i<=2:
return 1;
else:
return Fib(i-1) + Fib(i-2)
print(Fib(int(input(“请输入你要求的项:”))))
#法二:循环
target = int(input(“请输入你要求的项:”))
a,b = 1,1
for i in range(target-2):
t = a+b
a = b
b = t
print(b)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习
升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-CVHuRHpA-1711947758880)]
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习