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 ...
随机推荐
- 为什么说Redis是单线程的以及Redis为什么这么快!(转)
文章转自https://blog.csdn.net/chenyao1994/article/details/79491337 一.前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到 ...
- Flink 的datastreamAPI 以及function函数的调用,性能调优
1 DataStreamAPI1.1 DataStream Data Sources source是程序的数据源输入,你可以通过StreamExecutionEnvironment.addSource ...
- 剑指offer从上往下打印二叉树 、leetcode102. Binary Tree Level Order Traversal(即剑指把二叉树打印成多行、层序打印)、107. Binary Tree Level Order Traversal II 、103. Binary Tree Zigzag Level Order Traversal(剑指之字型打印)
从上往下打印二叉树这个是不分行的,用一个队列就可以实现 class Solution { public: vector<int> PrintFromTopToBottom(TreeNode ...
- node.js取参四种方法req.body,req.params,req.param,req.body
参考:https://my.oschina.net/u/2519530/blog/535309 获取请求很中的参数是每个web后台处理的必经之路,nodejs的 express框架 提供了四种方法来实 ...
- dijkstra P4779 【模板】单源最短路径(标准版) 洛谷luogu
题目背景 2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 然后呢? 100→60 Ag→Cu 最终,他因此没能与理想的大 ...
- C# 语法三 抽象类和接口
1.抽象类 2.接口 一 抽象类 跟普通类的区别: a)用abstract标识类.抽象方法 b)抽象方法,只能声明,不能定义 c)抽象类不能实例化 二 接口 接口用interface标识,所有的成员( ...
- ArrayList源码中的两个值得注意的问题
1.“拖泥带水”的删除 测试代码: package com.demo; import java.util.ArrayList; public class TestArrayList { public ...
- JAVA 8的新特性
1.Lambda表达式:允许把函数作为一个方法的参数 Lambda的优点: 1)简洁 2)非常容易并行计算 3)可能代表未来编程趋势 Lambda的缺点: 1)若不要并行计算,很多时候计算速度没有传统 ...
- LiveCharts文档-4基本绘图-1基本线条图
原文:LiveCharts文档-4基本绘图-1基本线条图 4基本绘图-1基本线条图 using System; using System.Windows.Forms; using System.Win ...
- 11.11 开课二个月零七天(ajax和bootstrp做弹窗)
1.用ajax做弹窗显示信息详情 nation.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...