python控制语句实验报告_Python学习笔记2(控制语句)

标签:

1.if条件语句

if(表达式):

语句1else:

语句2

2.if...elif...else判断语句

if(表达式1):语句1elif(表达式2):语句2

...elif(表达式n):语句nelse:语句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条件语句时,尽量避免使用嵌套语句。不便阅读,且可能忽略一些可能性

1 #错误的嵌套语句

2 x = -1

3 y = 99

4 if(x !=0):5 if(x >0):6 y = 1

7 else:8 y =09 print ("y =", y)

注意:Python代码的缩进规则。具有相同缩进的代码被视为代码块,则上面的第7行的 else 语句与第4行的if对应。因此,当x!=0时,只考虑了x大于0的情况。

缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。

3.switch语句的代替方案

python中没有switch语句,因此可用其他方式构造出switch语句。

通过字典实现switch语句

from _future_ importdivision

x= 1y= 2operator= "/"result= { #定义一个字典result

"+" : x +y"-" : x -y"*" : x *y"/" : x /y

}print ( result.get(operator))

创建一个switch类,处理程序的流转

classswitch(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子句没有匹配项,则流转到默认分支

returnTrueelif self.value in args: #匹配成功

self.fall =TruereturnTrueelse: #匹配失败

returnFalse

operator= "+"x= 1y= 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=0while x

x+= 1

5.for循环

for 变量 in集合:

...

elsse:#最后一次循环结束后执行else子句,else可省略

...

for...in...循环通常与range()函数一起使用,range()返回一个列表,for...in...遍历列表中的元素。range()函数的声明如下:

classrange(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 inrange(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()

标签:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值