python下10个简单实例代码


Posted in Python onNovember 15, 2017

注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!!!

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

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

# -*- coding: UTF-8 -*-
for i in range(1,5):
 for j in range(1,5):
  for k in range(1,5):
   if (i != j) and (i != k) 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,求应发放奖金总数?

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

方法一: 这种方法是我用数学的原理做的,就是把每种情况都列出一个表达式,最后简化表达式,然后直接根据输入的利润 I 来计算表达式的值,也就是奖金总数。就是把奖金叠加起来,具体算法还是要在纸上计算,这种方法适用于初学编码的人,比如我,用最笨的数学思路解决问题,就是说在数学上你是按照什么方法做的,然后把他转化成代码,就比较容易理解了。

# -*- coding: UTF-8 -*-
while True:
 I = input("pls input the lirun:")
 if I <= 10:
  a = I * 0.01
  print a
 elif I <= 20 and I > 10:
  b =0.25 + I * 0.075
  print b
 elif I <= 40 and I > 20:
  c = 0.75 + I * 0.05
  print c
 elif I <= 60 and I > 40:
  d = 0.95 + I * 0.03
  print d
 elif I <= 60 and I > 100:
  e = 2 + I * 0.015
  print e
 else:
  f = 2.95 + I * 0.01
  print f

方法二:这种方法就比较难懂了,适合于基础好的人。

# -*- coding: UTF-8 -*-
I = int(raw_input('净利润:'))
#这应该就是各个分界值了,把它们放在列表里方便访问
arr = [1000000,600000,400000,200000,100000,0] 
#这是各个分界值所对应的奖金比例值
rat = [0.01,0.015,0.03,0.05,0.075,0.1] 
 #这是总奖金的初始值
r = 0  
 #有6个分界值当然要循环6次     
for idx in range(0,6):  
 if I > arr[idx]:
  r = r + (I - arr[idx]) * rat[idx] 
  print (I - arr[idx]) * rat[idx]
  I = arr[idx]
print r

3.题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?

程序分析:在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。这里要用到数学中的开方函数 sqrt。

# -*- coding: UTF-8 -*-
import math
for i in range(10000):
 x = int(math.sqrt(i + 100))
 y = int(math.sqrt(i + 268))
 if (x * x == i + 100) and (y * y == i + 268):
  print i

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

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

思路:先把输入的日期进行分割,分割成年,月,日三个数字,再按照实际情况依次编写。

# -*- coding: UTF-8 -*-
x = raw_input("请输入日期,比如20160506:")
year = int(x[:4])
month = int(x[4:6])
day = int(x[6:8])
month_day = [31,28,31,30,31,30,31,31,30,31,30,31]
data = sum(month_day[:(month-1)],day)
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
 if month > 2:
  data = data + 1
print "it is the %dth day"% (data)

5.题目:输入三个整数x,y,z,请把这三个数由小到大输出。

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

# -*- coding: UTF-8 -*-
l = []
for i in range(3):
 x = int(raw_input('integer:\n'))
 l.append(x) #这里用append()函数,意思是追加元素
 l.sort()
print l

程序分析二:用一个变量来存储最小值,三个数进行比较后两两交换,这是最常用的思路。

# -*- coding: UTF-8 -*-

x = input("input a num:")
y = input("input a num:")
z = input("input a num:")
temp = 0
if x < y:
 temp = x
 x = y
 y = temp
if x < z:
 temp = x
 x = z
 z = temp
if y < z:
 temp = y
 y = z
 z = temp
print z,y,x #由于上面是由小到大来比较和交换的,所以这里需要逆序输出

程序分析三:用函数sort进行排序,sort函数可以把数字按照从小到大的顺序进行重新排列。

# -*- coding: UTF-8 -*-
x = input("input a num:")
y = input("input a num:")
z = input("input a num:")
y = [x,y,z] #注意,这里只能是列表,不能是元组,因为元组是不可改变的,你懂得!!
y.sort()
print y

6.题目:将一个列表的数据复制到另一个列表中。

注意: 有些同学想到使用append()函数,这里要特别注意,append()函数是每次追加一个元素,如果使用append()函数,会把需要追加的那个列表当成一个数据来使用,不信你看下面这个:

方法一:

# -*- coding: UTF-8 -*-
l1 = [1,2,3]
l2 = [4,5,6]
l1.append(l2)
print l1

输出:[1, 2, 3, [4, 5, 6]]

方法二:使用“+”来连接两个列表,即就是把l2列表的数据复制到l1列表中。

# -*- coding: UTF-8 -*-
l1 = [1,2,3]
l2 = [4,5,6]
print l1 + l2

输出:[1, 2, 3, 4, 5, 6]

方法三:使用列表[:]。切片的方法,大家都知道如果不指定start和end,则表示输出该列表的所以元素。

# -*- coding: UTF-8 -*-
a = [1, 2, 3] #把列表a复制到列表b
b = a[:]
print b

7.题目:输出9*9乘法口诀表。

程序分析:分行与列考虑,共9行9列,i控制行,j控制列。如果不要求格式的话,就简单了,可以任意格式输出,如下:

# -*- coding: UTF-8 -*-
for i in range(1,10):
 for j in range(1,10):
  x = i * j
  print "%d * %d = %d" % (i,j,x)

如果需要考虑输出格式,我们后面的文章会讲到,嘿嘿。

8.题目:暂停一秒输出。

程序分析:暂停时间的函数为 time.sleep(),此处可随意举例,列表,元组,字典均可。

# -*- coding: UTF-8 -*-
import time
d = {"a":1,"b":2}
for i in d:
 print i
 time.sleep(1) #暂停一秒输出

9.题目:斐波那契数列。

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

n = 1 时 f(1) = 1
n = 2 时 f(2) = 1
n = 3 时 f(3) = f(3-1) + f(3-2)
    = f(2) + f(1)
    = 1 + 1
    = 2
n = 4 时 f(4) = f(4-1) + f(4-2)
    = f(3) + f(2)
    = 2 + 1
    = 3
n = 5 时 f(5) = f(5-1) + f(5-2)
    = f(4) + f(3)
    = 3 + 2
    = 5
.....   ...

所以,当 n >= 2 时,表达式为f(n) = f(n-1) + f(n-2)

方法一:

# -*- coding: UTF-8 -*-

def fib(n):
 a,b = 1,1
 for i in range(n-1):
  a,b = b,a+b
 return a

# 输出了第10个斐波那契数列
 print fib(10)

方法二:

# -*- coding: UTF-8 -*-

# 使用递归
def fib(n):
 if n==1 or n==2:
  return 1
 return fib(n-1)+fib(n-2)

# 输出了第10个斐波那契数列
print fib(10)

方法三:如果你需要输出指定个数的斐波那契数列,可以使用以下代码:

# -*- coding: UTF-8 -*-

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)

10.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:经过计算和寻找规律得到,兔子的规律为数列1,1,2,3,5,8,13,21….典型的斐波那契数列,这就是为什么我要把斐波那契数列数列放在第九题的原因,那么根据上一题的方法三,我们就非常轻松的求得每月兔子的数量。

此外,还有一种比较漂亮的输出:

# -*- coding: UTF-8 -*-

f1 = 1
f2 = 1
for i in range(1,21):
 print '%12ld %12ld' % (f1,f2),
 if (i % 3) == 0:
  print ''
 f1 = f1 + f2
 f2 = f1 + f2

输出
1 1 2 3 5 8
13 21 34 55 89 144
233 377 610 987 1597 2584
4181 6765 10946 17711 28657 46368
75025 121393 196418 317811 514229 832040
1346269 2178309 3524578 5702887 9227465 14930352
24157817 39088169 63245986 102334155 165580141 267914296

Python 相关文章推荐
python批量修改文件名的实现代码
Sep 01 Python
Django admin美化插件suit使用示例
Dec 12 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
python实现汽车管理系统
Nov 30 Python
Flask框架工厂函数用法实例分析
May 25 Python
简单了解python关系(比较)运算符
Jul 08 Python
Django实现跨域请求过程详解
Jul 25 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
python实现二分类的卡方分箱示例
Nov 22 Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
Python实现Telnet自动连接检测密码的示例
Apr 16 Python
python获取多线程及子线程的返回值
Nov 15 #Python
python使用threading获取线程函数返回值的实现方法
Nov 15 #Python
python enumerate函数的使用方法总结
Nov 15 #Python
Python set常用操作函数集锦
Nov 15 #Python
python机器学习库常用汇总
Nov 15 #Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 #Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 #Python
You might like
PHP 文件上传全攻略
2010/04/28 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
寻找网站后台地址的python脚本
2014/09/01 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python字符串切片操作知识详解
2016/03/28 Python
Java及python正则表达式详解
2017/12/27 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
Django中的Model操作表的实现
2018/07/24 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
中式结婚主持词
2014/03/14 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
教师研修随笔感言
2015/11/18 职场文书
原生JS实现分页
2022/04/19 Javascript