Python学习笔记2(控制语句)
1.if条件语句
if(表达式):
语句1
else:
语句2
2.if...elif...else判断语句
if(表达式1):语句1
elif(表达式2):语句2
...
elif(表达式n):语句n
else:语句m
eg:
#if elif else语句
score = float( input("score:"))
if 90 <= score <=100:
print("A")
elif 80<= score <=90:
print("B")
elif 60<= score <=80:
print("C")
else:
print("D")
PS:编写if条件语句时,尽量避免使用嵌套语句。不便阅读,且可能忽略一些可能性
# 错误的嵌套语句
x = -1
y = 99
if(x != 0):
if(x > 0):
y = 1
else:
y = 0
print ("y =", y)
注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,则上面的第7行的 else 语句与第4行的if对应。因此,当x!=0时,只考虑了x大于0的情况。
缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
3.switch语句的代替方案
python中没有switch语句,因此可用其他方式构造出switch语句。
- 通过字典实现switch语句
from _future_ import division
x = 1
y = 2
operator = "/"
result = { #定义一个字典result
"+" : x + y
"-" : x - y
"*" : x * y
"/" : x / y
}
print ( result.get(operator))
- 创建一个switch类,处理程序的流转
class switch(object):
def _init_(self, value): # 初始化需要匹配的值value
self.value = value
self.fall = False # 如果匹配到的case语句中没有break,则fall为True
def _iter_(self):
yield self.match # 调用match方法 返回一个生成器
raise StopIteration # StopIteration异常来判断for循环是否结束
def match(self, *args): # 模拟case子句的方法
if self.fall or not args: # 如果fall为True,则继续执行下面的case语句
# 或case子句没有匹配项,则流转到默认分支
return True
elif self.value in args: # 匹配成功
self.fall = True
return True
else: # 匹配失败
return False operator = "+"
x = 1
y = 2
for case in switch(operator): # switch只能用于for in循环中
if case( '+' ):
print (x + y)
break
if case( '-' ):
print (x - y)
break
if case( '*' ):
print (x * y)
break
if case( '/' ):
print (x / y)
break
if case(): #默认分支
print ""
PS:switch语句造成代码不已维护,使源代码臃肿。不推荐使用switch。
4.while循环
while(表达式): # 表达式错误,程序转到else语句
...
else: #else也属于while循环的一部分
... #最后一次循环结束后将执行else子句
eg:(遍历numbers中的数据)
numbers = input("输入几个数字,用逗号分隔:").split(",")
print(numbers)
x = 0
while x < len(numbers):
print (number[x])
x += 1
5.for循环
for 变量 in 集合:
...
elsse: #最后一次循环结束后执行else子句,else可省略
...
for...in...循环通常与range()函数一起使用,range()返回一个列表,for...in...遍历列表中的元素。range()函数的声明如下:
class range(object)
range(stop) -> range object
range(start, stop[, step]) -> range object
# start表示列表开始的值,默认值为0;
# stop表示列表结束的值,该参数不可缺少;
# step表示步长,每次递增或递减的值,默认值为1;
eg:
for x in range(-1,2):
if x > 0:
print ("正数: ", x)
elif x == 0:
print ("零: ", x)
else:
print ("负数: ", x)
else:
print ("循环结束")
6.break和continue语句(同C)
7.冒泡排序示例
# 冒泡排序
def bubbleSort(numbers): # 冒泡算法的实现
for j in range(len(numbers) -1, -1, -1):
for i in range(j):
if numbers[i] > numbers[i*1]: # 把数值小的数字放到顶端
numbers[i], numbers[i+1] = numbers[i+1], numbers[i]
print (numbers) def main(): # 主函数
numbers = [23, 12, 9, 15, 6]
bubbleSort(numbers) if _name_ == '_main_':
main()
Python学习笔记2(控制语句)的更多相关文章
- python学习笔记三——控制语句
2.5 运算符与表达式 2.5.1 算术运算符和算术表达式 算术运算符包括四则运算符.求模运算符和求幂运算符. 算术运算符 加减乘除:+ - * / 表达式:x+y x-y x*y x/y ...
- python学习笔记(控制语句)
博主平时学python的时候.大多是复制网上别人现成的进行改动实现自己的测试的要求 所有python基础语法其实掌握的很差 本来想优化下接口脚本实现.发现基础的循环控制语句都不知道怎么写 所以准备整理 ...
- Python学习笔记(二):条件控制语句与循环语句及常用函数的用法
总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- python学习笔记--Django入门0 安装dangjo
经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
随机推荐
- nyoj-366-D的小L(求全排列)
D的小L 时间限制:4000 ms | 内存限制:65535 KB 难度:2 描述 一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给匡匡 ...
- BasicExcel说明文档
BasicExcel说明文档 BasicExcel原始链接:http://www.codeproject.com/Articles/13852/BasicExcel-A-Class-to-Read-a ...
- ng-repeat-start ng-repeat-end 的使用
ng-repeat-start与ng-repeat-end时AngularJS(1.2.x)扩展的, 使用这两个指令可以灵活控制遍历形式. 例如: index.html <div class=& ...
- man手册导出成txt,pdf,html的一些小技巧
经常man一些shell命令,有时候有想导出来编辑或注释一下,所以要导出.方法有很多种,根据自己的实际需要觉得比较实用的记录下分享一下. 1.导出成txt man –t bash |col –b &g ...
- Winform不用窗体之间传值
1 先构建一个类,内容如下: namespace TravelForm { public sealed class Setting { private static volatile Setting ...
- centos 6.4 更新源地址
执行如下命令: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.old vim /etc/yum.repo ...
- java设计模式--结构型模式--适配器模式
适配器模式 概述 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适用性 1.你想使用一个已经存在的类,而它的接口不符合你的需 ...
- HDu 5433 Xiao Ming climbing (BFS)
题意:小明因为受到大魔王的诅咒,被困到了一座荒无人烟的山上并无法脱离.这座山很奇怪: 这座山的底面是矩形的,而且矩形的每一小块都有一个特定的坐标(x,y)和一个高度H. 为了逃离这座山,小明必须找到大 ...
- 定位于定位优化(iOS)
定位于定位优化 1.定位的方案 最近在做项目, 遇到了一个问题就是如何让iOS7~~iOS9的定位.因为项目需求只是需要获取用户所在的城市, 而不用十分具体详细的精确定位, 服务端考虑用区号, 作为标 ...
- poj 3111 K Best (二分搜索之最大化平均值之01分数规划)
Description Demy has n jewels. Each of her jewels has some value vi and weight wi. Since her husband ...