练习01:

题目:

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

分析:

可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。

程序:

for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if (i != k) and (i != j) and (j != k):
print(i, j, k)

输出结果:

1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2

练习02:

题目:

企业发放的奖金根据利润提成。利润(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)

输出结果:

净利润:120000
1500.0
10000.0
11500.0

练习03:

题目:

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

分析:

假设该数为 x。

1、则:x + 100 = n2, x + 100 + 168 = m2

2、计算等式:m2 - n2 = (m + n)(m - n) = 168

3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数

4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。

5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。

6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。

7、接下来将 i 的所有数字循环计算即可。

程序:

for i in range(1,85):
if 168 % i == 0:
j = 168 / i;
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
m = (i + j) / 2
n = (i - j) / 2
x = n * n - 100
print(x)



输出结果:

-99.0
21.0
261.0
1581.0

练习04:

题目:

输入某年某月某日,判断这一天是这一年的第几天?

分析:

以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:

程序:

year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n')) months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
if 0 < month <= 12:
sum = months[month - 1]
else:
print('data error')
sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
leap = 1
if (leap == 1) and (month > 2):
sum += 1
print('It is the %dth day in the year.' % sum)

输出结果:

year:
2018
month:
3
day:
23
It is the 82th day in the year

练习05:

题目:

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

分析:

我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

程序:

l = []
for i in range(3):
x = int(input('Please input sorted number:\n'))
l.append(x)
l.sort()
print(l)

输出结果:

Please input sorted number:
1
Please input sorted number:
20
Please input sorted number:
5
[1, 5, 20]

练习06:

题目:

斐波那契数列。

分析:

斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。在数学上,费波那契数列是以递归的

方法来定义:

程序:

方式一:

def fib(n):
a, b = 1, 1
for i in range(n - 1):
a, b = b, a + b
return a # 输出了第10个斐波那契数列 print(fib(10))

方式二:

# 使用递归

def fib(n):
if n == 1 or n == 2:
return 1
return fib(n - 1) + fib(n - 2) # 输出了第10个斐波那契数列 print(fib(10))

输出结果:

55

方式三:

def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
# 输出前 10 个斐波那契数列
print(fib(10))

输出结果:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

练习07:

题目:

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

分析:

使用列表[:]。

程序:

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

输出结果:

[1, 2, 3]

练习08:

题目:

输出 9*9 乘法口诀表。

分析:

分行与列考虑,共9行9列,i控制行,j控制列。

程序:

for i in range(1, 10):
for j in range(1, i + 1):
mul = i * j;
if mul < 10:
print(str(j) + "x" + str(i) + "=" + str(mul), end=" ");
else:
print(str(j) + "x" + str(i) + "=" + str(mul), end=" ");
print();

输出结果:

1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

练习09:

题目:

暂停一秒输出。

分析:

使用 time 模块的 sleep() 函数。

程序:

import time
num_list = [1, 2, 3, 4, 5, 6]
for i in num_list:
print(i)
time.sleep(1) # 暂停 1 秒



输出结果:

1
# 暂停1秒
2
# 暂停1秒
3
# 暂停1秒
4
# 暂停1秒
5
# 暂停1秒
6

练习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())))

输出结果:

2019-03-23 11:16:07
# 暂停1秒
2019-03-23 11:16:08

最新文章

  1. JSHint配置项说明
  2. Unity3D内置资源包简介
  3. [C]判断一个文件是否是jpg格式
  4. 你好,C++(32) 类是对现实世界的抽象和描述 6.2.1 类的声明和定义
  5. linux常用查看硬件设备信息命令(转载)
  6. PHP foreach 遍历数组是打印出相同的数据
  7. 【openstack N版】——可视化服务horizon
  8. PHP定义字符串的四种方式
  9. Scala:数组
  10. (转载)CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法
  11. mysql中的prepare介绍和应用
  12. 毕业论文Word格式技巧
  13. C#深入研究ArrayList动态数组自动扩容原理
  14. 使用python的Paramiko模块登陆SSH
  15. BZOJ 1528 [POI2005]sam-Toy Cars(优先队列)
  16. Xshell启动时显示丢失MSVCP110.dll
  17. Odoo中的模型
  18. RxSwift 系列(四)
  19. SiteServer CMS简介
  20. centos7.2 开发 部署 .net core

热门文章

  1. UDP发送文件
  2. 2020牛客暑期多校训练营(第二场)Fake Maxpooling
  3. 牛客练习赛71 C.数学考试 (DP,容斥原理)
  4. kafka——集群安裝部署(自带zookeeper)
  5. Spring Cloud实战 | 第十一篇:Spring Cloud Gateway 网关实现对RESTful接口权限控制和按钮权限控制
  6. Linux命令:sysctl
  7. 鸟哥的linux私房菜——第四章学习
  8. codeforces 758D
  9. JavaScript中的对象引用和复制
  10. ubuntu+将主机编译的库链接到虚拟环境Python中