📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,小白一枚,多多关照😜😜😜
🏅🏅🏅CSDN Python领域新星创作者,大二在读,欢迎大家找我合作学习
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨
前言:
这里记录一下自己刷一百道题的心路历程吧,每十道题发一篇文章,希望大家可以从中学习到知识,也希望自己能够坚持下去吧!欢迎大家前来一起监督学习!
1.有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
a=[]
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i!=j)and(j!=k)and(i!=k):
a.append([i,j,k])
print(len(a))
print(a)
三重循环,也没啥很特别的,正常思路想到的就是三重循环吧。唯一的一点需要注意的我觉得就是这个列表的创建吧。
因为题目中说要求先这些三位数的个数进行输出,还需要再把这些数分别输出,首先考虑的还是列表,列表中的len()
函数还是很好用的,直接把符合的数据加入列表后面,然后计算长度,最好把列表输出。
2.企业发放的奖金根据利润提成。利润(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('净利润:'))
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(0,6):
if i>arr[idx]:
r+=(i-arr[idx])*rat[idx]
print ((i-arr[idx])*rat[idx])
i=arr[idx]
print(r)
思路方面,首先我第一反应便是分段,这确实是能想到的最简单的也是最好用的,但是那样确实有点浪费时间,所以说参考了一下别人的算法,算是写出了一个更加方便计算的程序吧。
首先创建的这两个列表的话,第一个就是我们的利润区间,第二个是我们的收成区间。range(0,6)也就是0-5六个数,分别对应我们的六个利润区间和收成区间。每次遍历一次,确定我们的利润区间,确定之后,减去这个区间的值,从而用差值乘以我们的收成比例系数求出我们的收成。然后剩下的利润便是当前利润区间的值,从而继续遍历!最后依次相加,输出收成总和。
3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
import math
n = 0
for n in range(-100, 10000):
n+=1
x=int(math.sqrt(n + 100))
y=int(math.sqrt(n+100+168))
if(x**2==n+100 and y**2==n+100+168):
print(n)
算来算去,我还是感觉math函数
最流氓最好用!math.sqrt(n + 100)
直接求其平方根,然后取整,倒着来算其是否符合条件。最后math.sqrt()
函数YYDS!!!
输入某年某月某日,判断这一天是这一年的第几天?
year = int(input('请输入哪一年:'))
month = int(input('第几个月:'))
day = int(input('几号:'))
k = 0
a = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
b = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year%400 == 0) or (year%4 == 0 and year%100 != 0):
for i in range(1,month):
j = b[i-1]
k+=j
else:
for i in range(1,month):
j = a[i-1]
k+=j
print(k+day)
这道题的话,首先我考虑的就是是否是闰年问题,怎样判断闰年呢,大家记住就行了:(year%400 == 0) or (year%4 == 0 and year%100 != 0)
,这是判断方法,要牢记于心!
因为闰年的问题月份不同,自然而然想到的是创建两个列表来存储每月的天数,根据是否是闰年,来分别遍历两个不同的列表。因为列表中我们存储的本身就是整数
了,所以说我们只需要把需要的数据一次从1月开始遍历出来相加就可以了,还是比较好想的,注意列表索引是0,月份从1开始遍历的,要让变量在获取列表索引时,大小减1,从0开始。
然后设置一个全局变量k
来存储和,不要用遍历的j
作为这个变量来依次相加求和,j
在这个j = a[i-1]
赋值的地方,大小是会发生变化的!
5.输入三个整数x, y, z,请把这三个数由小到大输出。
a= int(input('第一个数:'))
b = int(input('第二个数:'))
c = int(input('第三个数:'))
d = 0
if a > b:
d = a
a = b
b = d
if a > c:
d = a
a = c
c = d
if b > c:
d = b
b = c
c = d
elif a > c:
d = a
a = c
c = d
if b > c:
d = b
b = c
c = d
print(a,b,c)
排序三个数,从小到大依次输出。我首先想到的便是两两比较方法,先用1和2
还有1和3
进行比较,将1的位置上放入最小的数,然后2和3
再进行比较,让两者中的小者作为2的位置,最后依次输出1 2 3, 即从小到大进行输出!
说实话,这是最简单的方法同时也是最愚蠢的方法,最简单是因为这是最容易想的也是最不用动脑子的方法;最愚蠢是因为这种方法实在是太呆了,一一比较,效率很低,高级一点的话可以用冒泡排序,但是这道题用冒泡的话确实就有点大题小做了!我们其实可以借助列表中的sort()函数
来排序,俗称耍流氓!
代码如下:简单又容易理解!
list = []
for i in range(3):
a = int(input('请输入数字:'))
list.append(a)
list.sort()
print(list)
6.斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
def feibonaji(n):
if n==1:
return 0
elif n==2:
return 1
else:
return feibonaji(n-1)+feibonaji(n-2)
print(feibonaji(8))
这道题应该是学递归函数的时候都要做的一道题,很基础也很全面吧。理解起来并不是很容易。递归方法:前两项的和相加等于自身的值,n=1时为0,n=2时为1,n=3时,值为1+0=1,以此类推,得到相应的数据的值。
7.将一个列表的数据复制到另一个列表中
a = [1,2,3,4.5]
b = []
for i in a:
b.append(i)
print(b)
代码1的话,应该是大多数人的思路,很简单不是要复制一下列表a嘛,那我就把列表a挨着遍历一遍,把遍历完的数放在b里面,构成一个新的列表。当然按照这个来的话,自然而然就会想到列表生成器:
# 列表生成式
a= [1,2,3]
b = [i for i in a]
print(b)
列表生成器的话其实跟思路一其实是差不多的,就是创建列表和元素添加直接一步走
了,更加简单明确!
a = [1,2,3,4,5]
b = a[::1]
print(b)
其实更简单的一种方法便是利用列表切片原理,直接全部切片,简单又方便!直接用b = a[::]
默认从头按顺序切到尾,重新复制一遍,但这还不是最简单的方法哟~
a = [1,2,3,4,5]
b = a.copy()
print(b)
使用copy函数
,将列表a重新复制一遍,得到一个新列表,方便又好用,copy函数学习起来吧!
9.输出 9*9 乘法口诀表。
for i in range(1,10):
for j in range(1,i+1):
print(j,'*',i,'=',i*j,end='\t')
print()
这是初学循环都会打印的一个9*9乘法表,很基础但你不一定可以正确输出!运用到了两个循环结构,end = ''
相当于让它不要在一个循环中换行输出。然后换行print()
相当于结束第一个循环后换行打印下一个循环。也可以用格式化字符串进行输出,这样会更简单:print('%d*%d=%d' % (i, j, i*j), end=' ')
9.暂停一秒输出。
# 9.暂停一秒输出。
# 使用 time 模块的 sleep() 函数。
import time
for i in range(5):
print(i)
time.sleep(1)
使用 time 模块的 sleep() 函数
,定义睡眠时间!
10.暂停一秒输出,并格式化当前时间。
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())))
这个没啥好说的,time模块strftime()
函数输出当前时间,参数有点多,背吧!
结语:
第一期圆满结束,我们第二期再见!!!加油坚持下去!!!
🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
联系客服