python学习笔记四——循环及冒泡排序
3.3.3 break 和 continue语句
break:跳出整个循环
continue:跳出当前循环继续后面的循环
例:
- x=int(input("please input the 'x':"))
- y=0
- for y in range(0,100):
- if(x==y):
- print("the number is :",x)
- break
- else:
- print("The number was not found")
- x=0
- for i in [1,2,3,4,5]:
- if (x==i):
- continue
- x += i
- print("x的值为:",x)
3.4 结构化程序示例
冒泡排序:最小的在前面,过程示例
解析:冒泡排序需要对数列循环若干次,例如数列中有i个元素。第一遍循环,自底向上检查一遍这个数列,比较相邻的两个元素。如果较小的元素在数列的下面,把较小的元素排在前面。依次比较之后,就把最大的元素放在底部了。第二遍循环就不需要计较最后一个元素了(最大元素)。依次类推,第n遍循环只需要从第一个元素开始,比较i-n次。经过i-1遍的处理后,数列就从小到大排序完成了。
冒泡排序的程序可以分解为两个模块,冒泡算法的实现函数和主函数,如图
在实现中将用到xrange()。前面提到了range()函数生产迭代集合。(注意:python3中没有xrange())
冒泡排序示例:
- #!/usr/bin/env python
- def bubbleSort(numbers): #定义一个冒泡函数
- for j in range(len(numbers)-1,-1,-1): #如果len(number)=5,该句的range等同与range(4,-1,-1),取值范围是4 —0
- for i in range(j):
- if(numbers[i]>numbers[i+1]): #把小的放到前面
- numbers[i],numbers[i+1]=numbers[i+1],numbers[i]
#python特有语法,等同于分别对应numbers[i]=numbers[i+1]和numbers[i+1]=numbers[i]互换数值,不可分开写。不同于C语言中需要一个中间数间接实现数值转移。- print(numbers)
- def main(): #自定义个一个函数
- numbers=[23,12,9,15,6,10,19,8]
- bubbleSort(numbers)
- if __name__ == '__main__': #初始化主函数,并调用函数main(),相当于C语言中的main(),是python程序的入口
- main()
注意:while循环和for循环都有一个else子句,这个语法是C和Java中没有的。
小练习:编写程序,输入金额,输出需要缴纳的个人所得税以及扣除所得税后的实际个人收入(排除社保等其他因素)
- #!/usr/bin/env python
- import sys
- money=float(input("请输入你的工资:"))
- pay=money-3500
- out=0
- if(pay<=0):
- print("您的工资不在纳税范围")
- sys.exit()
- while(pay>0):
- if(pay<=1500):
- out=pay*0.03-0
- break
- elif(1500<pay<=4500):
- out=pay*0.1-105
- break
- elif(4500<pay<=9000):
- out=pay*0.2-555
- break
- elif(9000<pay<=35000):
- out=pay*0.25-1005
- break
- elif(35000<pay<=55000):
- out=pay*0.3-2775
- break
- elif(55000<pay<=80000):
- out=pay*0.35-5505
- break
- else:
- out=pay*0.45-12505
- break
- print("您需要缴纳的个人所得为:%d,您税后实际收入为:%d" %(out,money-out))
- [root@Dannyserver danny]# python .py
- 请输入你的工资:
- 您需要缴纳的个人所得为:,您税后实际收入为:9255
- [root@Dannyserver danny]# python .py
- 请输入你的工资:
- 您的工资不在纳税范围
python学习笔记四——循环及冒泡排序的更多相关文章
- 【Python学习笔记】循环和迭代
for和while基本语法 break和continue else的使用 enumerate和zip在循环中的应用 for和while基本语法 Python中的的循环使用for和while语句来实现, ...
- python学习笔记:循环语句——while、for
python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组.循环里面 ...
- python学习笔记(四)、条件、循环及其他语句
1 再谈print和import 1.1 打印多个参数 print 能够同时打印多个表达式,并且能自定义分隔符.如下: print('a','b','c') ——> a b c print('a ...
- python学习笔记(四)---用户输入与while循环
用户输入 函数input demo1: message = input("all you input is chars:") print(message) demo2: 由inpu ...
- Python学习笔记四
一.装饰器 1.知识储备 函数对象 函数可以被引用 函数可以当参数传递 返回值可以是函数 可以当作容器的元素 def func1(): print (666) def func2(): print ( ...
- python学习笔记(四) 思考和准备
一.zip的坑 zip()函数接收多个可迭代数列,将数列中的元素重新组合,在3.0中返回迭代器指向 数列首地址,在3.0以下版本返回List类型的列表数列.我用的是3.5版本python, 所以zip ...
- python学习笔记(四):函数
一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...
- python学习笔记(四):生成器、内置函数、json
一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了 ...
- python学习笔记四 迭代器,生成器,装饰器(基础篇)
迭代器 __iter__方法返回一个迭代器,它是具有__next__方法的对象.在调用__next__方法时,迭代器会返回它的下一个值,若__next__方法调用迭代器 没有值返回,就会引发一个Sto ...
随机推荐
- [转]QDir类及其用法总结
直接给出原文链接:QDir类及其用法总结
- Linux Kernel Programming - Time,Delays,and Deferred Work
Measuring Time Lapses The counter and the utility functions to read it live in <linux/jiffies.h&g ...
- <<linux device driver,third edition>> Chapter 2: Building and Running Modules
Kernel Modules Versus Applications Kernel modules programming is similar to event driven programming ...
- linux中VI编写C程序。。。
在linux中编写C程序时不像编写shell那样开头要#!/bin/bash,但是在C程序中要指定头文件(头文件是指输入输出,宏等,而且要首先声明,也是必须要开始就声明的) 写好C代码后要给C文件赋予 ...
- HIS系统结算后,没有更新单据状态为“已结算”
1.由于查询单据有个参数:时间,而应用服务器和数据库服务器存在时间差,经比对,数据库服务器时间要快7秒 2.应用服务器查询单据,根据当前时间去查,但是由于数据库服务器要快7秒,导致查询不出数据. 总结 ...
- 【Codeforces 710F】String Set Queries
Codeforces 710 F 思路:KMP学的还是不过关啊... 按照字符串的长度分类,如果长度大于\(\sqrt{n}\)的就扔到什么地方等待查询,否则就扔进trie里面. 对于查询,我们先在t ...
- Android对接微信支付体验
在写正文之前我不得不吐槽一下:微信支付所提供的参考文档以及技术支持真心太烂了. 微信的坑: 1.在生成prepay_id向微信服务器传递参数时<body>不支持中文.需要对其进行转码,否则 ...
- WireShark抓包工具使用
WireShark是一款网络封包分析软件,它抓取网络封包,并尽可能显示出最详细的封包资料. wireshark的准备工作 安装wireshark sudo apt-get install wiresh ...
- GPXReader工具代码简析
完整的文件在TerraExplorer Pro的默认安装目录下C:\Program Files (x86)\Skyline\TerraExplorer Pro\Tools\GPXReader: 如果你 ...
- BZOJ1758 WC2010 重建计划 二分答案、点分治、单调队列
传送门 看到平均数最大,自然地想到二分答案.那么我们的$check$函数就是要求:是否存在一条长度在$[L,U]$的路径,满足其权值和$\geq 0$. 看到长度在$[L,U]$,自然地想到点分治求解 ...