本文章是 【Python语言基础】 专栏的文章,主要是上课的随堂笔记与练习
Python专栏 传送门
提示:本文的环境配置是Python3的开发环境。目录顺序以当堂内容(教材)为准,所以并非“1、2、3”
本节主要内容:上节学习了程序设计结构,学习过C+、JAVA的小伙伴都知道,这部分学完当然要简单练习一下啦,下面的题嘞都是你们学习其它语言练习过的典型题,下一期再续一期水仙花、最大公约数、素数之类的
1 + 1 1 ! + 1 2 ! + 1 3 ! + . . . + 1 n ! = 1 + ∑ 1 ∞ 1 i ! 1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+...+\frac{1}{n!}=1+\sum_{1 }^{\infty }\frac{1}{i!} 1+1!1+2!1+3!1+...+n!1=1+1∑∞i!1,最后一项精度为0.00001
while
实现
i = 1; sum = 1; n = 1
while 1 / n >= 0.00001:
sum = sum + 1 / n
i = i + 1
n = n * i
print("sum =", sum)
for
实现
sum = 1; n = 1
for i in range(1,10000):
n = n * i
if 1 / n >= 0.00001:
sum = sum + 1 / n
else:
break
print("sum =",sum)
某公司员工的工资计算方法为:
- 月工时数在120~180内,每小时按80元计算
- 月工时数超过180,超过部分加发20%
- 月工时数低于120,扣发10%
ygss = float(input("请输入月工时数: "))
if ygss > 180:
ygz = 80 * ygss + (ygss - 180) * 80 * 0.2
elif ygss >= 120 and ygss <= 180:
ygz = 80 * ygss
else:
ygz = 80 * ygss * (1-0.1)
print("您这个月的工资为: %.2f元."%ygz)
'''
请输入月工时数: 200
您这个月的工资为: 16320.00元
'''
猴子吃桃问题。一只猴子一天摘了若干个桃子。
第1天,猴子吃了一半多一个
第2天,猴子吃了剩下的一半多1个
以后每天吃了剩下的一半多1个
在第5天早上要吃时发现只剩下1个了
问:猴子最初摘了多少个桃子?
分析:这是一个迭代问题。先由最后1天剩下的桃子数推出倒数第2天的桃子数,再从倒数第2天推出倒数第3天的桃子数……
{ x n = 1 2 x n − 1 − 1 x n − 1 = ( x n + 1 ) × 2 \begin{cases} x_{n}=\frac{1}{2}x_{n-1}-1 \\ x_{n-1}=(x_{n}+1)\times 2 \\ \end{cases} {xn=21xn−1−1xn−1=(xn+1)×2
x = 1 #最后一天的桃子数.
print("第 5 天的桃子数: %d."%x)
for i in range(5,1,-1): #循环次数为4.
x = (x + 1) * 2 #计算前1天的桃子数.
print("第 %d 天的桃子数: %d."%(i-1,x)) #输出每天的桃子数.
'''
第 5 天的桃子数: 1.
第 4 天的桃子数: 4.
第 3 天的桃子数: 10.
第 2 天的桃子数: 22.
第 1 天的桃子数: 46.
'''
古代数学中的百元百鸡问题。假定公鸡2元/只,母鸡3元/只,小鸡0.5元/只。现有100元,要求买100只鸡,编程列出所有可能的购鸡方案
分析:根据题意,设公鸡、母鸡和小鸡各为x只、y只和z只,列出方程组为:
{ x + y + z = 100 2 x + 3 y + 0.5 z = 100 \begin{cases} x + y + z=100 \\ 2x + 3y + 0.5z=100 \\ \end{cases} {x+y+z=1002x+3y+0.5z=100
for x in range(51): #x为公鸡数,100元最多买50只.
for y in range(34): #y为母鸡数,100元最多买33只.
z = 100 - x - y #z为小鸡数.
if 2 * x + 3 * y + 0.5 * z == 100:
print("公鸡 %d 只,母鸡 %d 只,小鸡 %d 只."%(x,y,z))
'''
公鸡 0 只,母鸡 20 只,小鸡 80 只.
公鸡 5 只,母鸡 17 只,小鸡 78 只.
公鸡 10 只,母鸡 14 只,小鸡 76 只.
公鸡 15 只,母鸡 11 只,小鸡 74 只.
公鸡 20 只,母鸡 8 只,小鸡 72 只.
公鸡 25 只,母鸡 5 只,小鸡 70 只.
公鸡 30 只,母鸡 2 只,小鸡 68 只.
'''
利用计算机程序做猜数字游戏:计算机程序产生一个[1, 100]范 围的随机整数key;用户输入猜数x
计算机程序根据下列3种猜数情况做出提示:
- x > key:猜大了
- x < key:猜小了
- x == key:猜对了
在程序执行时,如果用户5次还没有猜中就结束游戏程序,并公布正确答案。
分析:计算机猜数是计算机二分查找算法的一种应用。基本方法是折半处理,即将要查找的范围每次缩小一半
import random
key = random.randint(1, 100)
print('------猜数字游戏开始!-----')
count = 0
x = int(input('请输入数字: '))
while True:
count = count + 1
if x > key:
print('您猜的数字大了!')
elif x < key:
print('您猜的数字小了!')
else:
print('恭喜您,猜对了!')
break
if count >= 5:
print('很遗憾,您没猜中!生成数字是: %d.' % key)
break
x = int(input('请输入数字: '))
print('----游戏结束,再见!^_^----')
'''
请输入数字: 50
您猜的数字大了!
请输入数字: 24
您猜的数字大了!
请输入数字: 12
您猜的数字小了!
请输入数字: 17
您猜的数字大了!
请输入数字: 14
您猜的数字小了!
很遗憾,您没猜中!生成数字是: 16.
----游戏结束,再见!^_^----
'''
编程实现模拟自动饮料机功能:
- 当输入数字0时,模拟自动饮料机停止运行
- 当输入数字1~5时,模拟自动饮料机给出对应的饮料
- 当输入其他数字时,模拟自动饮料机给出非法操作信息,并提示用户重新输入
分析:
正常情况下,模拟自动饮料机一直运行,输入不同的数字,对应不同的饮料
只有当出现故障或需要添加饮料时才停止运行
可以采用在while
语句中嵌套if-elif-else
多分支语句实现程序功能
投币 = int(input("请投币: "))
while True:
if 投币 == 0:
print("叮咚: 设备停止工作!")
break;
elif 投币 == 1:
叮咚 = "冰露纯净水"
elif 投币 == 2:
叮咚 = "农夫山泉矿泉水"
elif 投币 == 3:
叮咚 = "冰红茶"
elif 投币 == 4:
叮咚 = "脉动"
elif 投币==5:
叮咚 = "红牛"
else:
叮咚 = "投币错误!已退回"
print("叮咚:",叮咚)
投币 = int(input("请投币: "))
'''
请投币: 1
叮咚: 冰露纯净水
请投币: 2
叮咚: 农夫山泉矿泉水
请投币: 3
叮咚: 冰红茶
请投币: 4
叮咚: 脉动
请投币: 5
叮咚: 红牛
请投币: 6
叮咚: 投币错误!已退回...
请投币: 0
叮咚: 设备停止工作!
'''