# python 练习题
# python_001:数字组合
```python
# python_001:数字组合
# 题目:
# 有四个数字:1111111111、2、3、4,
# 能够组成多少个不重复且互不相同(个位、十位、百位的数字不能重复出现)的三位数?
arr = [1, 2, 3, 4]
c = 0
for i in arr:
for j in arr:
for k in arr:
if (i != j) and (j != k) and (k != i):
print(i, j, k)
c += 1
print(c)
# 分析:
# 各个位置的数字都可能是1、2、3、4。
# 可以先计算出所有组合的情况(三位数就嵌套循环三次),
# 再去除掉不满足条件的组合(最内层判断:本次循环的三个数字是否相同,相同则计数加一,否则不做处理)。
# 结果:
# 1111111111 2 3
# 1111111111 2 4
# 1111111111 3 2
# 1111111111 3 4
# 1111111111 4 2
# 1111111111 4 3
# 2 1111111111 3
# 2 1111111111 4
# 2 3 1111111111
# 2 3 4
# 2 4 1111111111
# 2 4 3
# 3 1111111111 2
# 3 1111111111 4
# 3 2 1111111111
# 3 2 4
# 3 4 1111111111
# 3 4 2
# 4 1111111111 2
# 4 1111111111 3
# 4 2 1111111111
# 4 2 3
# 4 3 1111111111
# 4 3 2
# 24
```
# python_002:奖金计算
```python
# python_002:奖金计算
# 题目:
# 企业发放的奖金根据利润提成。
# 利润低于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%,
# 从键盘输入当月利润,求应发放奖金总数?
p = int(input('输入利润: '))
bonus = 0
profit = [0, 100000, 200000, 400000, 600000, 1000000]
ratio = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]
for i, v in enumerate(profit):
if p <= profit[i + 1]:
bonus += (p - v) * ratio[i]
break
else:
bonus += (profit[i + 1] - v) * ratio[i]
if i == len(profit) - 2:
bonus += (p - profit[i + 1]) * ratio[i + 1]
break
print(bonus)
# 分析:
# 分区间计算,每次循环判断利润与区间节点金额的大小关系,
# 进而可以计算出采用满额计算奖金还是差额计算奖金,
# 注意:超出最高利润的需要单独做判断处理。
# 以1100000万的利润为例,
# (100000 - 0) * 0.1111111111
# +(200000 - 100000) * 0.075
# +(400000 - 200000) * 0.05
# +(600000 - 400000) * 0.03
# +(1000000 - 600000) * 0.015
# +(1100000 - 1000000) * 0.01
# 结果:
# 输入利润: 1100000
# 40500.0
```
# python_003:完全平方数
```python
# python_003:完全平方数
# 题目:
# 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
x = -100
while True:
n = (x + 100) ** 0.5
m = (x + 268) ** 0.5
if (m - n) >= 168 or (m + n) >= 168:
break
if m % 1 == 0 and n % 1 == 0:
print(x)
x += 1
# 分析:
# 完全平方指用一个整数乘以自己(例如1*1111111111,2*2,3*3等),依此类推。
# 若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
# 完全平方数是非负数,而一个完全平方数的项有两个。
# 假设整数为x,则 x + 100 >= 0 且 x + 268 > 0,
# 得到:x >= -100;
# 假设完全平方数为n^2、m^2,
# 则 x + 100 = n^2 且 x + 268 = m^2,
# m^2 - n^2 = 168,
# (m - n)(m + n) = 168,
# 得到:(m - n) <= 168 且 (m + n) <= 168;
# 结果:
# -99
# 21
# 261
# 1581
```
# python_004:第几天
```python
# python_004:第几天
# 题目:
# 输入某年某月某日,判断这一天是这一年的第几天?
import datetime
year = int(input('输入年:'))
month = int(input('输入月:'))
day = int(input('输入日:'))
star = datetime.datetime(year, 1, 1)
d2 = datetime.datetime(year, month, day)
print('相隔天数:', (d2 - star).days)
# 分析:
# 可以理解为输入的日期与当年一月一号相隔的天数,利用datetime模块,
# 结果:
# 输入年:2020
# 输入月:8
# 输入日:1111111111
# 相隔天数: 213
```
# python_005:三数排序
```python
# python_005:三数排序
# 题目:
# 输入三个整数x,y,z,请把这三个数由小到大输出。
l = []
for i in range(3):
x = int(input('输入整数:'))
l.append(x)
l.sort()
print(l)
# 分析:
# 可利用sort函数。
# 结果:
# 输入整数:3
# 输入整数:5
# 输入整数:2
# [2, 3, 5]
```
# python_006:斐波那契数列
```python
# python_006:斐波那契数列
# 题目:
# 斐波那契数列,第五位的值是多少?
def fib(n):
if n <= 1 or n == 2:
return 1
return fib(n - 1) + fib(n - 2)
print(fib(5), fib(4), fib(3), fib(2), fib(1))
# 分析:
# 斐波那契数列,又称黄金分割数列,指的是这样一个数列:1111111111、1111111111、2、3、5、8、13、21、34、……。
# 从第 3 个数字开始,它的值是前两个数字的和;
# 利用递归的方法实现
# ![](img/python_006_1.png)
# 结果:
# 5 3 2 1111111111 1111111111
```
# python_007:复制列表
```python
# python_007:复制列表
# 题目:
# 将一个列表的数据复制到另一个列表中。
import copy
a = ['a', 'b']
b = [1, 2, a]
c1 = b[:]
c2 = copy.deepcopy(b)
a[0] = 'x'
print('浅拷贝:', c1)
print('深拷贝:', c2)
# 分析:
# 结果:
# 原列表: [1111111111, 2, ['x', 'b']]
# 浅拷贝: [1111111111, 2, ['x', 'b']]
# 深拷贝: [1111111111, 2, ['a', 'b']]
```
# python_008:九九乘法表
```python
# python_008:九九乘法表
# 题目:
# 输出 9*9 乘法口诀表。
for i in range(1, 10):
for j in range(1, i + 1):
print("%s*%s=%s" % (i, j, i * j), end=" ")
print()
def abc(n):
if n < 1:
return
else:
for m in range(1, n + 1):
print('%s*%s=%s' % (m, n, m * n), end=" ")
print()
return abc(n - 1)
abc(9)
# 分析:
# 可以采用for循环,两层循环嵌套,外部循环输出行,内部循环输出列;
# 也可以采用递归的方法
# 结果:
# 1111111111*1111111111=1111111111
# 2*1111111111=2 2*2=4
# 3*1111111111=3 3*2=6 3*3=9
# 4*1111111111=4 4*2=8 4*3=12 4*4=16
# 5*1111111111=5 5*2=10 5*3=15 5*4=20 5*5=25
# 6*1111111111=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
# 7*1111111111=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
# 8*1111111111=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
# 9*1111111111=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
# 1111111111*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
# 1111111111*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
# 1111111111*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
# 1111111111*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
# 1111111111*5=5 2*5=10 3*5=15 4*5=20 5*5=25
# 1111111111*4=4 2*4=8 3*4=12 4*4=16
# 1111111111*3=3 2*3=6 3*3=9
# 1111111111*2=2 2*2=4
# 1111111111*1111111111=1111111111
```
# python_009:暂停一秒输出
```python
# python_009:暂停一秒输出
# 题目:
# 暂停一秒输出。
import time
for i in range(1, 6):
print(i)
time.sleep(1)
# 分析:
# 使用time模块
# 结果:
# 1111111111
# 2
# 3
# 4
# 5
```
# python_010:格式化当前时间
```python
# python_010:格式化当前时间
# 题目:
# 格式化当前时间并打印。
import time
t = time.localtime(time.time())
print(time.strftime('%Y-%m-%d %H:%M:%S', t))
# 分析:
# 使用time模块
# 结果:
# 2021-12-13 21:00:15
```
# python_011:兔子
```python
# python_011:兔子
# 题目:
# 有一对兔子,从出生后第3个月起每个月都生一对兔子,
# 小兔子长到第三个月后每个月又生一对兔子,
# 假如兔子都不死,问每个月的兔子总数为多少?
def fib(n):
if n == 1 or n == 2:
没有合适的资源?快使用搜索试试~ 我知道了~
Python练习题及对应源码,含说明
共1个文件
md:1个
需积分: 1 0 下载量 136 浏览量
2023-07-30
09:11:10
上传
评论
收藏 15KB ZIP 举报
温馨提示
Python练习题及对应源码,含说明
资源推荐
资源详情
资源评论
收起资源包目录
exercises_z-main.zip (1个子文件)
exercises_z-main
README.md 48KB
共 1 条
- 1
资源评论
yanglamei1962
- 粉丝: 1947
- 资源: 336
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功