​

初学Python,寻此良库,诸君共享,才疏学浅,见笑见笑

题目一:

1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

答案:

num=i=0
for a in range(1,5):
for b in range(1,5):
if a != b:
num=a*100+b*10
for c in range(1,5):
if (a!=b)and(a!=c)and(b!=c):
num +=c
i+=1
print(f'num= {num}')
print(f'一共{i}个不同的数据')

运行结果:

num= 123
num= 127
num= 132
num= 136
num= 142
num= 145
num= 213
num= 217
num= 231
num= 235
num= 241
num= 244
num= 312
num= 316
num= 321
num= 325
num= 341
num= 343
num= 412
num= 415
num= 421
num= 424
num= 431
num= 433
一共24个不同的数据

题目二:

企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

答案:

num=int(input('请输入企业纯利润'))
if num<=100000:
money_name=0.1*100000
elif (num>100000) and (num<=200000):
money_name=0.1*100000+(num-100000)*0.075
elif (num>200000) and (num<=400000):
money_name = 0.175 * 100000 + (num-200000)*0.05
elif (num>400000) and (num<=600000):
money_name = 0.175 * 100000 + 200000 * 0.05+(num-400000)*0.03
elif (num>600000) and (num<=1000000):
money_name = 0.175 * 100000 + 200000 * 0.05 + 200000* 0.03+(num-600000)*0.015
else:
money_name = 0.175 * 100000 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015+(num-1000000)*0.01
print(money_name)

运行结果:

请输入企业纯利润1500000
44500.0

题目三:

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
.
解析:最简单的方法就是直接遍历,但是我们不知道符合条件的数是不是有限个,这样就需要一直循环遍历,大大的浪费了计算机的资源,所以我们先要大概确定一个范围。

答案:

'''
设未知数为X
x+100=m^2
m^2+168=n^2
m^2-n^2=(m+n)*(m-n)=168
m和n都是整数,所以 |m|,|n|<168且|n|<|m|
'''
t = []
for m in range(168):
for n in range(m):
if m**2-n**2==168:
a=n**2-100
t.append(a)
print(f'符合条件的整数有:{t}')

运行结果:

符合条件的整数有:[-99, 21, 261, 1581]

题目四:

输入某年某月某日,判断这一天是这一年的第几天?
.
闰年判断方法:年份能被4整除同时不能被100整除或者能被400整除。

答案:

p = [31,28,31,30,31,30,31,31,30,31,30,31] # 平年
r = [31,29,31,30,31,30,31,31,30,31,30,31] # 闰年
data = 0
year=int(input('请输入年份'))
month=int(input('请输入月份'))
day=int(input('请输入日期'))
if (year%400==0)or((year%4==0)and(year%100!=0)):
for i in range(month):
data+=r[i]
data+=day
else:
for j in range(month):
data+=p[j]
data+=day
print(f'{year}{month}{day}日是今年的第{data}天')

运行结果:

请输入年份2021
请输入月份2
请输入日期18
2021年2月18日是今年的第78天

题目五:

输入三个整数x,y,z,请把这三个数由小到大输出。

答案:

num=[]
for i in range(3):
a=int(input('请输入数字:'))
num.append(a)
num.sort()
print(num)

运行结果:

请输入数字:3
请输入数字:2
请输入数字:1
[1, 2, 3]

题目六:

实现斐波那契数列。

答案:

t=[1,1]
n=int(input('请输入需要的斐波那契数列长度:'))
if n==1:
print(t[0])
elif n==2:
print(t)
else:
for i in range(n):
if i>=2:
sum_num = t[i-2]+t[i-1]
t.append(sum_num)
print(t)

运行结果:

请输入需要的斐波那契数列长度:10
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

题目七:

将一个列表的数据复制到另一个列表中。

答案

a=[1,2,3]
b=a.copy()
print(b)

有人会问,直接b=a不行吗,肯定不行,直接使用b=a,就相当于给a的地址给b。

运行结果:

[1, 2, 3]

题目八:

输出 9*9 乘法口诀表。

答案:

for i in range(1,10,1):
print()
for a in range(1,i+1):
print(f'{i}*{a}={i*a}',end=' ')

运行结果:

1*1=1 
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

题目九:

暂停一秒输出。

答案:

import time
while 1:
print("delay")
print()
time.sleep(1)

运行结果:

delay

delay

delay

delay

题目十:

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

答案:

import time
while 1:
print()
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())))
time.sleep(1)
print()
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
time.sleep(1)

运行结果:

2021-09-07 15:17:06

2021-09-07 15:17:07

2021-09-07 15:17:08

2021-09-07 15:17:09

2021-09-07 15:17:10

2021-09-07 15:17:11

部分代码参考了菜鸟博客里面的源码!