目录
由于篇幅问题,需完整版后台扣“1”即可
实例001:数字组合
要组成互不相同且不含重复数字的三位数,我们可以从四个数字1、2、3、4中选取。首先,我们选择一个数字作为百位,有4种可能的选择;接着,选择一个不同于百位的数字作为十位,剩下3种选择;最后,选择一个不同于前两位的数字作为个位,剩下2种选择。因此,总共可以组成4×3×2=24个这样的三位数。具体来说,这些数字包括:123、124、132、134、142、143、213、214、231、234、241、243、312、314、321、324、341、342、412、413、421、423。
程序分析 遍历全部可能,把有重复的剃掉。
total=0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
若(i与j不同)且(j与k不同)并且(k与i不同)。
print(i,j,k)
total+=1
print(total)
简便方法 用中的即可。
import itertools
sum2=0
a=[1,2,3,4]
在遍历由itertools.permutations函数生成的a元素的三元素排列组合时,执行以下操作:,
print(i)
sum2+=1
print(sum2)
实例002:“个税计算”
题目 企业发放的奖金根据利润提成。当月利润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,计算应发放的奖金总额。
程序分析 分区间计算即可。
收益值等于输入函数获取的显示“给我展示金钱”提示后的用户输入。
bonus=0
阈值设定为100000、100000、200000、200000和400000。
利率设定为0.1,0.075,0.05,0.03,0.015,以及0.01。
在遍历阈值列表的过程中,针对每一个阈值,通过循环控制变量i的值从0开始,每次增加1,直到达到阈值列表的长度。
if profit<=thresholds[i]:
bonus+=profit*rates[i]
profit=0
break
else:
bonus+=thresholds[i]*rates[i]
profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)
实例003:完全平方数
寻找一个整数,当它增加100后,结果是一个完美的平方数;进一步,若在此基础上再加168,得到的数依然是一个完整的平方数。那么,这个整数究竟是多少呢?
程序分析环节中,鉴于168在指数爆炸的背景下显得过于微小,因此我们可以直接跳过复杂的数学分析步骤,转而采用最为基础的方法来估算其上限。
n=0
while (n+1)**2-n*n<=168:
n+=1
print(n+1)
考虑到最糟糕的情况是n的平方与(n+1)的平方之间的差距恰好为168,鉴于平方数的特性,这样的差距已达到极限,无法再找到更大的空隙。
至于如何确定一个数是否为完全平方数,最直接的办法就是:查看其平方根的数值,如果小数部分为0,那么这个数就一定是完全平方数。
结合起来:
n=0
while (n+1)**2-n*n<=168:
n+=1
for i in range((n+1)**2):
if i**0.5==int(i**0.5) and (i+168)**0.5==int((i+168)**0.5):
print(i-100)
实例004:这天第几天
题目 输入某年某月某日,判断这一天是这一年的第几天?
程序分析 特殊情况,闰年时需考虑二月多加一天:
def isLeapYear(y):
返回值为(y除以400的余数为0,或者(y除以4的余数为0且y0不等于0)的结果。
月份天数列表为:0,31,28,31,30,31,30,31,31,30,31,30。
res=0
年份变量赋值为用户输入的值,该值通过输入函数获取,并在提示“Year:”后输入。
设定月份变量,通过输入函数获取用户输入的月份值,赋值给变量month。
设定变量day为用户输入的“day:”提示后的值。
if isLeapYear(year):
DofM[2]+=1
for i in range(month):
res+=DofM[i]
print(res+day)
实例005:三数排序
题目 输入三个整数x,y,z,请把这三个数由小到大输出。
进行程序分析时,若想快速上手,不妨尝试选取一种排序算法进行实现;若感到懒散,则可直接调用现成的函数。
raw=[]
for i in range(3):
变量x的值通过输入函数获取,提示信息为“请输入第%d个整数:”,其中%d将被实际数字i所替换。
raw.append(x)
for i in range(len(raw)):
for j in range(i,len(raw)):
if raw[i]>raw[j]:
raw[i],raw[j]=raw[j],raw[i]
print(raw)
raw2=[]
for i in range(3):
x=int(input('int%d: '%(i)))
raw2.append(x)
print(sorted(raw2))
实例006:斐波那契数列
题目 斐波那契数列。
进行程序处理斐波那契数列,其起始值为1和1,后续的每一项数值均为前两项数值相加所得。若为了简便,可采取递归方式进行计算;若追求性能优化,则宜采用循环算法。
递归实现
def Fib(n):
return 1 if n<=2 else Fib(n-1)+Fib(n-2)
print(Fib(int(input())))
朴素实现
target=int(input())
res=0
a,b=1,1
for i in range(target-1):
a,b=b,a+b
print(a)
实例007:copy
题目 将一个列表的数据复制到另一个列表中。
程序分析 使用列表,拿不准可以调用copy模块。
import copy
变量a被定义为一个列表,其中包含了数字1、2、3、4,以及另一个列表,该子列表由字符'a'和'b'组成。
b = a # 赋值
c = a[:] # 浅拷贝
d = copy.copy(a) # 浅拷贝
e = copy.deepcopy(a) # 深拷贝
a.append(5)
a[4].append('c')
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)
文件路径为:F:\\\\007.py,该文件被设定为禁止修改。
a=
1, 2, 3, 4,
禁止对'a'、'b'、'c'进行任何形式的修改。
, 5
b=
1, 2, 3, 4,
'a', 'b', 'c'
, 5
c=
1, 2, 3, 4,
'a', 'b', 'c'
d=
1, 2, 3, 4,
'a', 'b', 'c'
e=
1, 2, 3, 4,
'a', 'b'
实例008:九九乘法表
题目 输出 9*9 乘法口诀表。
程序分析 分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
for j in range(1,i+1):
输出格式为:“%d乘以%d等于%ld,”其中i和j分别为%d和%d,计算结果为i*j。
print()
实例009:暂停一秒输出
题目 暂停一秒输出。
程序分析 使用 time 模块的 sleep() 函数。
import time
for i in range(4):
输出时间戳的最后两位数字。
time.sleep(1)
实例010:给人看的时间
题目 暂停一秒输出,并格式化当前时间。
程序分析 同009.
import time
for i in range(4):
输出当前时间,格式为“年-月-日 时:分:秒”,具体操作是通过`strftime`函数对`localtime`函数返回的时间对象进行格式化处理。
time.sleep(1)
由于篇幅问题,需完整版后台扣“1”即可
最后祝大家早日学有所成!!
扫一扫在手机端查看
-
Tags : 斐波那契
- 上一篇:Python 3.10.10 下载 Windows 64位_python下载安装教程3.10.0,python的下载和安装步骤
- 下一篇:如何卸载rpm安装的MySQL _怎么卸载rpm中已经安装的mysql
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1