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

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

#程序源代码
#!/usr/bin/python
# -*- coding: UTF-8 -*- 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

题目2:企业发放的奖金根据利润提成。

利润(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,求应发放奖金总数?

程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

profit = int(input('输入发放的利润值(万元): '))
if 0 <= profit <10:
print('提成为:',profit*0.1,'万元')
if 10 <= profit < 20:
print('提成为:',(profit-10)*0.075+10*0.1,'万元')
if 20 <= profit < 40:
print('提成为:',(profit-20)*0.05+10*0.075+10*0.1,'万元')
if 40 <= profit < 60:
print('提成为:',(profit-40)*0.03+20*0.05+10*0.075+10*0.1,'万元')
if 60 <= profit < 100:
print('提成为:',(profit-60)*0.015+20*0.03+20*0.05+10*0.075+10*0.1,'万元')
if profit >= 100:
print('提成为:',(profit-100)*0.01+40*0.015+20*0.03+20*0.05+10*0.075+10*0.1,'万元') #重复的部分较多,显得比较蠢,于是寻求改进的部分

方法2

profit = int(input('输入企业的利润值(万元): '))
def get_bonus(profit):
bonus = 0
if 0 <= profit <= 10:
bonus = 0.1*profit
elif (profit > 10) and (profit <= 20):
bonus = (profit-10)*0.075 + get_bonus(10)
elif (profit > 20) and (profit <= 40):
bonus = (profit-20)*0.05 + get_bonus(20)
elif (profit > 40) and (profit <= 60):
bonus = (profit-40)*0.03 + get_bonus(40)
elif (profit > 60) and (profit <= 100):
bonus = (profit-60)*0.015 + get_bonus(60)
elif (profit >100):
bonus = (profit-100)*0.01 + get_bonus(100)
else:
print("利润输入值不能为负")
return bonus if __name__ == '__main__':
print('提成为:',get_bonus(profit),'万元') #递归,运用了递归链条和递归基例

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

分析:

x+100=n^2

x+100+168=m^2

两式相减 得到m^2-n^2=168

def test1():
for n in range(0,168):
for m in range(n,169):
if (m+n)*(m-n) == 168:
print("这个整数是: ",str(n*n-100))
if __name__ =='__main__':
test1()

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

分析: 依次输入年月日

1.闰年差异需根据输入判断

2.输入月份对应建立 字典{月份:天数}

3.输入天数+月份对应累计天数 即为所得

try:
year=input("输入年份:")
month=input("输入月份: ")
day=input("输入日期号: ")
finally:
print("正在计算") months2days=[0,31,59,90,120,151,181,212,243,273,304,334]
# 闰年
if int(year) % 4 ==0:
for i in range(2,12,1):
months2days[i] +=1 month_index=[]
for j in range(12):
month_index.append(i+1)
dict_md=dict(zip(month_index,months2days))
whichday=dict_md[int(month)]+int(day)
print('结果是: 第{}天'.format(whichday))

题目5:输入n个整数,请把这n个数由小到大输出。

方法1 冒泡法(相邻位整数的比较)

def get_nums():
nums=[]
n=int(input("一共有几个整数?"))
for i in range(n):
x=int(input('请按次随机输入第{}个整数(剩余{}次输入):'.format(i+1,n-i)))
nums.append(x)
return nums
if __name__=='__main__':
list_nums=get_nums() def BubbleSort(nums): #冒泡法
print('初始整数集合为:{}'.format(nums))
for i in range(len(nums)-1):
for j in range(len(nums)-i-1):
if nums[j]>nums[j+1]:
nums[j],nums[j+1]=nums[j+1],nums[j] #调换位置,相互赋值
print("第{}次迭代排序结果:{}".format((len(nums)-j-1),nums))
return nums
if __name__=='__main__':
print('经过冒泡法排序最终得到:{}'.format(BubbleSort(list_nums)))

方法2 选择排序法

def get_nums():
nums=[]
n=int(input("一共有几个整数?"))
for i in range(n):
x=int(input('请按次随机输入第{}个整数(剩余{}次输入):'.format(i+1,n-i)))
nums.append(x)
return nums
if __name__=='__main__':
myList=get_nums() def selectedSort(myList):
#获取list的长度
length = len(myList)
#一共进行多少轮比较
for i in range(0,length-1):
#默认设置最小值得index为当前值
smallest = i
#用当先最小index的值分别与后面的值进行比较,以便获取最小index
for j in range(i+1,length):
#如果找到比当前值小的index,则进行两值交换
if myList[j]<myList[smallest]:
tmp = myList[j]
myList[j] = myList[smallest]
myList[smallest]=tmp
#打印每一轮比较好的列表
print("Round ",i,": ",myList) #根据第一个i循环进行打印,而不是选j循环 print("选择排序法:迭代过程 ")
selectedSort(myList)

方法3 二分排序法(最简单的)

def merge_sort(LIST):
start = []
end = []
while len(LIST) > 1:
a = min(LIST)
b = max(LIST)
start.append(a)
end.append(b)
LIST.remove(a)
LIST.remove(b)
if LIST:
start.append(LIST[0])
end.reverse()
return (start + end) if __name__=='__main__':
nums=[]
n=int(input('一共几位数: '))
for i in range(n):
x=int(input("请依次输入整数:"))
nums.append(x)
print(merge_sort(nums))

[Python] Python 100例的更多相关文章

  1. Python语言100例

    Python版本:python 3.2.2 电脑系统:win7旗舰 实例来源:python菜鸟教程100例 #!/usr/bin/python # -*- coding: UTF-8 -*- impo ...

  2. python 02/100例

    题目 输入某年某月某日,判断这一天是这一年的第几天? 分析 例如:2018年6月19日 天数 = 19天 + 一月天数 + 2月天数 + ... + 6月天数 注意 闰年的2月是29天,如果年份是闰年 ...

  3. Python菜鸟100例

    题目地址 #-*- codeing = utf-8 -*- #@Time : 2021/3/18 21:17 #@Author : HUGBOY #@File : 1.py #@Software: P ...

  4. python练习题100例

    链接地址:http://www.runoob.com/python/python-100-examples.html

  5. 一,python编程100例

    1.有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? number = (1 ,2,3,4) ...

  6. 100例Python代码带你从入门到进阶!

    以下所有代码全都至少运行一遍,确保可复现.易于理解.逐步完成入门到进阶的学习. 此教程经过我 反复打磨多遍 ,经常为此熬夜,真心不易,文章比较长,看完有用,帮我点个在看或分享支持. 教程包括 62 个 ...

  7. Python入门100例题

    原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/11/05/2755107.html 无论学习哪门计算机语言,只要把100例中绝大部分题目都做一遍, ...

  8. Python实例100个(基于最新Python3.7版本)

    Python3 100例 原题地址:   http://www.runoob.com/python/python-100-examples.html    git地址:    https://gith ...

  9. paip.输入法编程--英文ati化By音标原理与中文atiEn处理流程 python 代码为例

    paip.输入法编程--英文ati化By音标原理与中文atiEn处理流程 python 代码为例 #---目标 1. en vs enPHati 2.en vs enPhAtiSmp 3.cn vs ...

  10. python求100以内素数

    python求100以内素数之和 from math import sqrt # 使用isPrime函数 def isPrime(n): if n <= 1: return False for ...

随机推荐

  1. 【Java每日一题】20170320

    20170317问题解析请点击今日问题下方的“[Java每日一题]20170320”查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; public cla ...

  2. python中的协程

    目录 协程是啥 协程和线程差异 简单实现协程 greenlet 安装方式 gevent 安装 1. gevent的使用 2. gevent切换执行 3. 给程序打补丁 进程.线程.协程对比 请仔细理解 ...

  3. SpringBoot的Autowierd失败

    通常是以下几种可能: 1.没有加@Service注解,或者是这个bean没有放在标注了@Configuration这个注解的类下. 2.SpringBoot启动类没有开启扫描 @ComponentSc ...

  4. PHP实现二分法查找

    二分查找法需要数组是一个有序的数组. <?php function binarySearch($num, $arr) { $start = 0; $end = count($arr); $mid ...

  5. 【mysql】2003-Can't connect to MySQL server (10060)

    使用navicat或者其他数据库管理工具连接mysql时出现2003-Can’t connect to MySQL server (10060)错误 可能造成出现的原因: 1.网络不通畅 2.mysq ...

  6. PHP微信H5支付

    今天项目用到了微信新出的h5支付直接去官网 https://pay.weixin.qq.com/wiki/doc/api/index.html找dome去了找了之后才发现没有一脸懵逼,一开始以为和公众 ...

  7. 真实世界的脉络].(英)戴维.多伊奇.pdf

    [真实世界的脉络].(英)戴维.多伊奇.pdf 宇宙.时间.生命.等等,如果用量子物理学.计算机科学.进化论.认识论将这些最基本而又复杂的问题纠缠在一起时,那将会是一幅什么样的图景呢?也许,我们穷尽一 ...

  8. 浅谈css中的盒模型(框模型)

    css中的盒模型是css的基础,盒模型的理解可以帮助我们进行对样式进行修改.废话不多说,进入正题: 在w3c中,CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边框.边框 和 外边 ...

  9. 通过JS生成由字母与数字组合的随机字符串

    在项目中可能需要随机生成字母数字组成的字符,如生成3-32位长度的字母数字组合的随机字符串(位数不固定)或者生成43位随机字符串(位数固定) 使用Math.random()与toString()方法的 ...

  10. 实现DevOps需要的工具

    硬性要求:工具上的准备 代码管理(SCM):GitHub.GitLab.BitBucket.SubVersion 构建工具:Ant.Gradle.maven 自动部署:Capistrano.CodeD ...