Python实战编程教学第5章 选择语句
python程序设计基础课后习题答案(第五章)
第五章答案5.2:实现i s o d d()函数,参数为整数,如果参数为奇数,返回t r u e,否则返回f a l s e。
def isodd(s):x=eval(s)if(x%2==0):return Falseelse:return Truex=input("请输入一个整数:")print(isodd(x))请输入一个整数:5True5.3:实现i s n u m()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回t r u e,否则返回f a l s e。
def isnum(s):try:x=eval(s)if((type(x)==int)|(type(x)==float)|(type(x)==complex)):return Trueelse:return Falseexcept NameError:return Falsex=input("请输入一个字符串:")print(isnum(x))请输入一个字符串:5True题5.4:实现m u l t i()函数,参数个数不限,返回所有参数的乘积。
def multi(x):xlist=x.split(",")xlist = [int(xlist[i]) for i in range(len(xlist))] #for循环,把每个字符转成int值num=1for i in xlist:num=num*iprint(num)s=input("请输入数字,并用,号隔开:")multi(s)请输入数字,并用,号隔开:5,420题5.5:实现i s p r i m e()函数,参数为整数,要有异常处理,如果整数是质数返回t u r e,否则返回f a l s e。
try:def isprime(s):i=2m=0for i in range(2,s-1):if(s%i==0):i+=1m+=1else:i+=1if(m>0):return Falseelse:return Trueexcept NameError:print("请输入一个整数!")s=eval(input("请输入任意一个整数:")) print(isprime(s))请输入任意一个整数:9False。
精品课件python中if条件选择语句
判断两个操作数是否相等,相等则 返回True,否则返回False。
不等于运算符(!=)
判断两个操作数是否不相等,不相 等则返回True,否则返回False。
大于运算符(>)
判断左操作数是否大于右操作数, 如果是则返回True,否则返回False 。
小于运算符(<)
判断左操作数是否小于右操作数,如 果是则返回True,否则返回False。
多重条件判断:可以使用多个`if`-`elif`-`else`结构进行 更复杂的条件判断。
switch-case结构:尽管Python没有内置的`switch``case`结构,但可以通过字典映射、多个`if`-`elif`语句 或其他方式模拟实现类似功能。
THANKS
感谢观看
try-except结合if语句使用
处理其他类型的异常
print("捕获到未知异常:", e)
try-except结合if语句使用
print("操作成功,结果是 :", result)
如果没有异常发生,执行 此代码块eΒιβλιοθήκη se0103 02
try-except结合if语句使用
01
finally
02
result = dividend / divisor
案例分析:除法运算异常处理
01
print("结果是:", result)
02 except ZeroDivisionError as e
03 print("发生除零错误:", e)
案例分析:除法运算异常处理
except Exception as e print("发生未知错误:", e)
Python语言程序设计美梁勇第5章习题解答
Python语言程序设计美梁勇第5章习题解答第5章习题解答一、选择题1. 在Python中,下列哪个不是有效的变量名?A. 1nameB. Name1C. _nameD. name_1正确答案:A. 1name2. 下列哪个运算符不是Python的算术运算符?A. +B. *C. /D. %正确答案:D. %3. 在Python中,下列哪个是赋值运算符?A. ==B. >C. +=D. and正确答案:C. +=4. 下列关于列表的描述中,哪个是错误的?A. 列表是一种有序的集合B. 列表可以包含不同的数据类型C. 列表的索引是从0开始的D. 列表可以通过下标修改其中的元素正确答案:B. 列表可以包含不同的数据类型5. 下列关于字典的描述中,哪个是正确的?A. 字典是一种有序的集合B. 字典的每个元素都有一个对应的键和值C. 字典的元素可以通过索引来访问D. 字典中的键必须是字符串类型正确答案:B. 字典的每个元素都有一个对应的键和值二、编程题1. 编写一个函数,接受一个字符串作为参数,返回该字符串的长度。
```pythondef calculate_length(string):return len(string)```2. 编写一个程序,要求用户输入两个数字,并计算它们的和、差、积和商,最后将结果输出。
```pythonnum1 = float(input("请输入第一个数字:"))num2 = float(input("请输入第二个数字:"))add = num1 + num2subtract = num1 - num2multiply = num1 * num2divide = num1 / num2print("两个数字的和:", add)print("两个数字的差:", subtract)print("两个数字的积:", multiply)print("两个数字的商:", divide)```3. 定义一个列表,其中包含5个学生的成绩,计算并输出这5个学生的平均成绩。
第5章 python列表_python入门、python基础课件
课堂练习
1、练习列表的定义和简单使用 2、练习服务列表中的元素 3、练习修改、添加、删除列表元素 4、练习列表的常用方法
Thanks for your attention
另外,可通过reverse或key参数(使用某个函数)来设置列表的排列方式:
nums = [1, 2, 3, 9, 7, 6, 5]
nums.sort(reverse = True)
words = [‘ada’, ‘Dlone’, ‘a’, ‘An’, ‘dabc’, ‘cpack’] #key=str.lower words.sort(key=len) #reverse和key参数可以同时使用
列表常用方法
12.min()
快速获得序列的最小元素。
numbers = [100, 23, 78] min(numbers)
特别注意
使用列表特别要注意索引越界问题,避免出错
cars = [‘bmw’, ‘audi’, ‘toyota’, ‘subaru’, ‘lexus’] print(cars[5]) cars = [] cars[0]
一、添加列表元素 在列表中添加新元素时,最简单的方式是使用append()方法将元素附到列表末尾。 motorcycles = [] motorcycles.append(‘honda’) motorcycles.append(‘yamaha’) motorcycles.append(‘suzuki’)
注意:字符串可以和字符串相加,但列表不能和字符串直接相加
列表的加法和乘法
二、列表的乘法 将列表与数x相乘,将可以重复产生x个列表。 a = [1, 3, 5] b = a *5 c = ‘Hello’ c *= 5 s = [None] * 10
Python实用案例教程 第5章 数组
#修改第1行为[11,22]。
#修改第1个元素"
4. 删除
可以根据需要删除已经创建的数组的元素。 例如: >>> a = np.array([[1,2],[3,4],[5,6]]) >>> np.delete(a,1,axis = 0) array([[1, 2], [5, 6]]) >>> np.delete(a,(1,2),0) array([[1, 2]]) >>> np.delete(a,1,axis = 1) array([[1], [3], [5]]) #删除a的第2行 #删除a的第2,3行 #删除a的第2列
3. 修改
可以根据需要修改已经创建的数组的元素值。 例如: >>> a = np.array([[1,2],[3,4],[5,6]]) >>> a[0] = [11,22] >>> a array([[11, 22], [ 3, 4], [ 5, 6]]) >>> a[0][0] = 100 >>> a array([[100, 22], [ 3, 4], [ 5, 6]])
可以在创建数组包含的元素基础上增加元素,增加元素的方式有多种,通过hstack函数能将两个 多维数组在水平方向上堆叠,通过vstack函数能将两个多维数组在垂直方向上堆叠。 例如:
>>> import numpy as np >>> a = np.array([[1,2],[3,4],[5,6]]) >>> b = np.array([[-1,-2],[-3,-4],[-5,-6]]) >>> c=np.vstack((a,b)) >>> c array([[ 1, 2], [ 3, 4], [ 5, 6], [-1, -2], [-3, -4], [-5, -6]]) >>> d=np.hstack((a,b)) >>> d array([[ 1, 2, -1, -2], [ 3, 4, -3, -4], [ 5, 6, -5, -6]]) >>> a1 = np.array([[1],[2]]) >>> a1 #一个2行列向量 array([[1], [2]]) >>> b1=[10,20,30] #一个3列行向量 >>> a1+b1 #生成2行3列矩阵 array([[11, 21, 31], [12, 22, 32]])
XX医学院本科各专业《Python》第五章习题与答案-2020年精品
XX医学院本科各专业《Python》第五章习题与答案一、选择题1.Python中定义函数的关键字是(A)A.defB.defineC.functionD.defunc2. 下列不是使用函数的优点的是(D)A.减少代码重复 B.使程序更加模块化C.使程序便于阅读 D.为了展现智力优势3.关于函数参数传递中,形参与实参的描述错误的是( D)。
A.python实行按值传递参数。
值传递指调用函数时将常量或变量的值(实参)传递给函数的参数(形参)B.实参与形参存储在各自的内存空间中,是两个不相关的独立变量C.在参数内部改变形参的值,实参的值一般是不会改变的D.实参与形参的名字必须相同4. 关于Python的lambda函数,以下选项中描述错误的是(B )mbda函数将函数名作为函数结果返回B.f = lambda x,y:x+y 执行后,f的类型为数字类型mbda用于定义简单的、能够在一行内表示的函数D.可以使用lambda函数定义列表的排序原则:以下选项不是函数作用的是(A5.)A.提高代码执行速度B.增强代码可读性C.降低编程复杂度D.复用代码以下关于函数说法错误的是(D)6.:A.函数可以看做是一段具有名字的子程序B.函数通过函数名来调用C.函数是一段具有特定功能的、可重用的语句组D.对函数的使用必须了解其内部实现原理7. 以下关于函数调用描述正确的是:(A)A.自定义函数调用前必须定义B.函数在调用前不需要定义,拿来即用就好C.Python内置函数调用前需要引用相应的库D.函数和调用只能发生在同一个文件中8. 关于return语句,以下选项描述正确的是:(D)A.函数中最多只有一个return语句B.函数必须有一个return语句C.return只能返回一个值D.函数可以没有return语句9.下面说法正确的是:(B)def f(a,b):a = 4return a + bdef main():m = 5n = 6print(f(m,n),m + n)main()A.m、n为形式参数B.程序的输出结果为10 11C.a、b为实际参数D.以上说法均不正确10.以下关于Python函数说法错误的是:(B)def func(a,b):c = a ** 2 + bb = areturn ca = 10b = 100c = func(a,b) + aA.该函数名称为funcB.执行该函数后,变量c的值为200C.执行该函数后,变量a的值为10D.执行该函数后,变量b的值为10011.max()函数的作用是(C)A.求两个数的最大值B.求三个数的最大值C.返回若干数的最大值D.返回若干数的最小值()12. 哪个选项对于函数的定义是错误的?CA.def vfunc(a,*b):B.def vfunc(a,b=2):C.def vfunc(*a,b):D.def vfunc(a,b):13.下列说法错误的是(D)A.在函数内部直接修改形参的值并不影响外部实参的值。
第05章:Python 控制流语句(II)
range 类型介绍
• range 也是一种类型(type),它是一个数字的序列(s sequence of numbers),而且是不可变的,通常 用在for循环中
• 每次使用range( )默认返回一个列表对象。
>>> mlist = range(10) 说明:首先在内存中构建一个列表对象再并将0~9数字添加到列表中。
• 步骤4:拆分金额的每一位数字,并存放到一个列表中保存
比如,拆分数字 213 每一位
个位:( 213/1)%10 十位:( 213/10 )%10 百位:( 213/100 )%10 …… 公式: (数字 / 10位数幂)%10
实战任务1
Code说明:
• [行:29] for循环的次数为 步骤3 中计算出来的金额位数count • [行:33] (数字 / 10位数幂)%10 转换成Python语法为:(数字/10**位数)%10 • [行:35] 将拆分出来的位数存放到mlist列表中,使用append( )压栈的结果是个位在先,即 mlist [3, 1, 2]
控制流语句(II)
实战任务1. 银行金额大写汉字转换
使用For循环实现数字转换成大写汉字算法
实战任务1
• 银行电子支票业务在金额部分需要使用大写的汉字,因此需要将用户录入的数字信息转变为汉字。 • 目前只需完成1~5位整数转换即可。
输入金额:> 32542 汉字转换:> 叁 萬 贰 仟 伍 佰 肆 拾 贰 圆 整
>>> a = range(10) >>> type(a) <type: list> >>> b = xrange(10) >>> type(b) <type: xrange>
python核心编程第二版第5章习题答案
5-1.整型。
讲讲Python普通整型和长整型的区别。
答案:Python的标准整数类型是最通用的数字类型。
在大多数32位机器上,标准整数类型的取值范围是-2**31到2**31-1.Python的长整数类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关,换句话说,Python能轻松表达很大的整数。
长整型类型是标准整数类型的超集,当程序需要使用比标准整型更大的整型时,可以使用长整型类型。
在一个整型值后面加个L,表示这个整型是长整型。
这两种整数类型正在逐渐统一为一种。
剩下的一种整型类型是布尔类型。
即布尔True和布尔False。
5-2.操作符。
(a)写一个函数,计算并返回两个数的乘积。
(b)写一段代码调用这个函数,并显示它的结果。
答案:def multiply(x,y):return x*ya = raw_input('input number 1: ')b = raw_input('input number 2: ')print multiply(float(a),float(b))5-3.标准类型操作符。
写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。
A:90~100 B:80~89 C:70~79 D:60~69 F:<60答案:score = int(raw_input('input your score: '))if score > 100:print "your score is wrong!!"elif score >= 90:print 'A'elif score >= 80:print 'B'elif score >= 70:print 'C'elif score >= 60:print 'D'else:print 'F'5-4.取余。
python选择语句例题
python选择语句例题
嘿,朋友们!咱今天就来聊聊 Python 选择语句那些事儿。
你知道吗,就像我们在生活中要根据不同情况做出选择一样,Python 里的选择语
句也是超厉害的!比如说,你在纠结今天出门穿哪双鞋,是运动鞋呢,还是皮鞋,这就好比 Python 里的 if 语句在判断条件呢!
咱来看个具体例子哈,比如你想写个程序,判断一个数是不是大于50。
就可以这样写:
```python
num = 60
if num > 50:
print("这个数大于 50 呀!")
```
看到没,这就像你明确知道了穿运动鞋更适合跑步,然后就果断选
择了运动鞋一样清晰明了呀!
再来说说 elif 语句,这就好像你除了运动鞋和皮鞋,还有双凉鞋可
以选。
比如下面这个例子:
```python
score = 75
if score >= 90:
print("优秀!")
elif score >= 70:
print("良好!")
else:
print("加油哦!")
```
这是不是很形象呀!这就跟你根据不同场合选择不同鞋子一样合理嘛。
还有哦,选择语句在处理各种情况时那可真是太有用啦!就像你在面对不同天气决定带不带伞一样重要。
想象一下,要是没有这些选择语句,程序不就变得死板啦?那可不行呀!
我觉得呀,Python 的选择语句就像是一把神奇的钥匙,能打开各种不同的可能性之门,让程序变得更加灵活和智能。
大家可得好好掌握它呀,不然可就亏大啦!。
Python游戏设计案例实战第5章 Tkinter图形界面设计——图形版发牌程序
•主讲 夏敏捷 •计算机学院副教授
5.1 扑克牌发牌窗体程序功能介绍
• 4名牌手打牌,计算机随机将52张牌(不含大王和小王)发 给4名牌手,在屏幕上显示每位牌手的牌,程序的运行效果 如图所示。接下来,我们以Tkinter模块图形Canvas绘制为例 学习建立一些简单的GUI(图形用户界面)游戏界面。
root = Tk()
cv = Canvas(root, bg = 'white', width = 200, height = 100)
cv.create_line(10, 10, 100, 10, arrow='none')
#绘制没有箭头线段
cv.create_line(10, 20, 100, 20, arrow='first')
的图形界面布局。可以在画布上绘制图形、文字,放置 各种组件和框架。
5.3 图形绘制
5.3.2 Canvas上的图形对象 Canvas画布上可以绘制各种图形对象。通过调用如下绘制函 数实现。 create_arc( )绘制圆弧。 create_line( ) 绘制直线。 create_bitmap( )绘制位图。 create_image( )绘制位图图像。 create_oval( ) 绘制椭圆。 create_polygon( ) 绘制多边形。 create_window( ) 绘制子窗口。 create_text( )创建一个文字对象
cv.pack()
root.mainleate_ rectangle ()方法可以创建矩形对象。
• Canvas对象. create_rectangle(矩形左上角的x坐标, 矩形左上角的y坐标, 矩形右下角的x坐标, 矩形右下角的y坐标, 选项, ...)
python 选择表达式
python 选择表达式Python 选择表达式选择表达式是Python 3.8中新增的语法,用于简化条件表达式的编写。
它的语法如下:result = value_if_true if condition else value_if_false 其中,如果条件表达式condition的计算结果为真,则result 的值为value_if_true;否则,result的值为value_if_false。
下面我们来逐步解析选择表达式的语法和作用。
1. 简化条件表达式在以前的Python版本中,我们通常使用if-else语句来实现条件表达式,例如:if x > y:max_value = xelse:max_value = y这个if-else语句可以使用选择表达式简化为:max_value = x if x > y else y仅仅用一行代码就可以完成条件表达式的判断操作,使代码更加简洁明了。
2. 处理多重条件表达式选择表达式也可以用于处理多重条件表达式。
例如:if x > y:max_value = xelif x == y:max_value = 0else:max_value = y我们可以使用选择表达式简化为:max_value = x if x > y else 0 if x == y else y这种写法虽然看起来有些复杂,但是却可以用一行代码进行多重条件的判断。
这种写法不仅简化了代码,还更加清晰明了,让代码看起来更加精简。
3. 简化lambda表达式如果你经常使用lambda表达式,你会发现选择表达式可以让你的lambda函数更加简化。
例如:list_data = [1, 2, 3, 4, 5]result = list(map(lambda x: x**2, list_data))这个例子中,我们使用了lambda表达式来计算list_data中每个元素的平方值。
python从入门到实践课后习题第五章
python从⼊门到实践课后习题第五章"""5-1 条件测试:编写⼀系列条件测试;将每个测试以及你对其结果的预测和实际结果都打印出来。
你编写的代码应类似于下⾯这样:car = 'subaru'print("Is car == 'subaru'? I predict True.")print(car == 'subaru')print("\nIs car == 'audi'? I predict False.")print(car == 'audi')详细研究实际结果,直到你明⽩了它为何为 True 或 False 。
创建⾄少 10 个测试,且其中结果分别为 True 和 False 的测试都⾄少有 5 个。
"""car = 'audi'print(car == 'subaru')print(car == 'audi')name = 'Louie'print(name == 'link')print(name == 'louie')print(name.lower() == 'louie')"""5-2 更多的条件测试:你并⾮只能创建 10 个测试。
如果你想尝试做更多的⽐较,可再编写⼀些测试,并将它们加⼊到 conditional_tests.py 中。
对于下⾯列出的各种测试,⾄少编写⼀个结果为 True 和 False 的测试。
检查两个字符串相等和不等。
使⽤函数 lower() 的测试。
检查两个数字相等、不等、⼤于、⼩于、⼤于等于和⼩于等于。
使⽤关键字 and 和 or 的测试。
python的三种选择语句
本文将详细介绍Python语言中的三种选择语句:if语句,if/else语句和if/elif/else 语句。
对于每种语句,我们都提供了相应的流程图。
与此同时,我们给出许多简单的示例程序,以帮助读者加深理解。
一、程序的控制结构对于Python程序中的执行语句,默认时是按照书写顺序依次执行的,这时我们说这样的语句是顺序结构的。
但是,仅有顺序结构还是不够的,因为有时候我们需要根据特定的情况,有选择地执行某些语句,这时我们就需要一种选择结构的语句。
另外,有时候我们还可以在给定条件下往复执行某些语句,这时我们称这些语句是循环结构的。
有了这三种基本的结构,我们就能够构建任意复杂的程序了。
对本文来说,我们要讨论的是三种基本程序结构中的选择结构,它们分别用if语句、if/else 语句和if/elif/else语句实现。
至于其它两种控制结构,我们会在后续的文章中陆续加以介绍。
下面我们首先介绍if语句。
二、if语句Python的if语句的功能跟其他语言的非常相似,都是用来判定给出的条件是否满足,然后根据判断的结果(即真或假)决定是否执行给出的操作。
If语句是一种单选结构,它选择的是做与不做。
它是由三部分组成:关键字if本身、测试条件真假的表达式(我们简称为条件表达式)和表达式结果为真(即表达式的值为非零)时要执行的代码。
If语句的语法形式如下所示:if 表达式:语句体if语句的流程图如下所示:图1 if语句的流程示意图注意,if语句的语句体只有当条件表达式的值为真,即非零时,才会执行;否则的话,程序就会直接跳过这个语句体,去执行紧跟在这个语句体之后的语句。
我们这里的语句体,既可以包含多条语句,也可以只有一条语句组成,但是语句体由多条语句组成时,要有统一的缩进形式,否则就会出现逻辑错误,即语法检查没错,但是结果却非预期。
现在我们用一个示例程序来演示一下if语句的用法。
我们的程序很简单的,只要用户输入一个整数,如果这个数字大于6,那么就输出一行字符串;否则,直接退出程序。
Python程序设计习题答案 (5)
第五章课后习题1. 在操作字符串时,需要把两个或多个字符串连接成一个字符串,可以使用对于这种需求,连接操作符或者字符串对象方法实现。
【参考答案】+ join()2.编写程序,由给定字符串随机生成一个6位密码。
【参考答案】import randoms = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"pwd = ''.join((random.choice(s) for i in range(6)))print(pwd)3.编写程序,把A bad workman quarrels with his Tools.中的T替换为t。
【参考答案】方法一:s = 'A bad workman quarrels with his Tools.'s = s.replace('T','t')print(s)方法二:import res = 'A bad workman quarrels with his Tools.'result = re.sub(r'\bT', 't', s)print(result)4. 简单说明什么是正则表达式以及其作用。
【参考答案】正则表达式是用来描述或者匹配一系列符合某个句法规则的字符串。
在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某种模式的文本内容。
5.有一国外电话号码“2004-959-559 # 这是一个国外电话号码”,编写程序,去除其中的注释和“-”。
【参考答案】import rephone = "2004-959-559 # 这是一个国外电话号码"# 删除字符串中的Python注释num = re.sub(r'#.*$', "", phone)print("电话号码是: ", num)# 删除非数字(-)的字符串num = re.sub(r'\D', "", phone)print("电话号码是: ", num)。
python第五章-元组列表-题库
填空题1、表达式[1, 2, 3]*3的执行结果为__[1,2,3,1,2,3,1,2,3]____________________。
([1, 2, 3, 1, 2, 3, 1, 2, 3])2、list(map(str, [1, 2, 3]))的执行结果为_____[‘1’,’2’,’3’]________________。
([‘1’, ‘2’, ‘3’])3、表达式“[3] in [1, 2, 3, 4]”的值为____F____________。
(False)4、列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为none 。
(None)5、假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是________ [6,7,8,9,11]______________。
([6, 7, 9, 11])6、任意长度的Python列表、元组和字符串中最后一个元素的下标为___-1_____。
(-1)7、Python语句list(range(1,10,3))执行结果为__[1,4,7]_________________。
([1, 4, 7])8、表达式list(range(5)) 的值为_[0,1,2,3,4]_______________。
([0, 1, 2, 3, 4])9、______del________命令既可以删除列表中的一个元素,也可以删除整个列表。
(del)10、已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果为___T________。
(True)11、切片操作list(range(6))[::2]执行结果为______[0,2,4]__________。
([0, 2, 4])12、表达式(1, 2, 3)+(4, 5) 的值为__(1,2,3,4,5)________________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择结构应用
或者使用下面的方法直接计算今天是今年的第几天
>>> datetime.date.today().timetuple().tm_yday 208 >>> datetime.date(2015,7,25).timetuple().tm_yday 206
s += i
i += 1
if i > 10:
break
>>> print(s)
55
>>> s = 0
>>> for i in range(0, 11, 1): #遍历迭代对象中的所有元素
s += i
>>> print(s)
55
条件表达式
逻辑运算符and和or以及关系运算符具有惰性求值特点
条件表达式
选择结构应用
▪ datetime还提供了其他功能
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2015, 12, 6, 16, 1, 6, 313898)
>>> now.replace(second=30)
#替换日期时间中的秒
datetime.datetime(2015, 12, 6, 16, 1, 30, 313898)
if a > b:
a, b = b, a
#序列解包,交换两个变量的值
print(a, b)
单分支选择结构
条件表达式是否成立?
是 语句块 否
if 表达式: 语句块1
else: 语句块2
>>> chTest = ['1', '2', '3', '4', '5'] >>> if chTest:
print(chTest) else:
例3-3:编写程序,判断今天是今年的第几天。
import time
date = time.localtime()
#获取当前日期时间
year, month, day = date[:3]
day_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
>>> if a=3: SyntaxError: invalid syntax >>> if (a=3) and (b=4): SyntaxError: invalid syntax
if 表达式: 语句块
x = input('Input two number:')
a, b = map(int, x.split())
>>> now+datetime.timedelta(days=5) #计算5天后的日期时间
datetime.datetime(2015, 12, 11, 16, 1, 6, 313898)
>>> now + datetime.timedelta(weeks=-5) #计算5周前的日期时间
datetime.datetime(2015, 11, 1, 16, 1, 6, 313898)
if year%400==0 or (year%4==0 and year%100!=0): #判断是否为闰年 day_month[1] = 29
if month==1: print(day)
else: print(sum(day_month[:month-1])+day)
选择结构应用
其中闰年判断可以直接使用calendar模块的方法。
>>> a = 5 >>> print(6) if a>3 else print(5) 6 >>> print(6 if a>3 else 5) 6 >>> b = 6 if a>13 else 9 >>> b 9
双分支结构
#此时还没有导入math模块 >>> x = math.sqrt(9) if 5>3 else random.randint(1, 100) NameError: name 'math' is not defined >>> import math #此时还没有导入random模块,但由于条件表达式5>3的值为True,所以可以正常运行 >>> x = math.sqrt(9) if 5>3 else random.randint(1,100) #此时还没有导入random模块,由于条件表达式2>3的值为False,需要计算第二个表达式的值,因此出错 >>> x = math.sqrt(9) if 2>3 else random.randint(1, 100) NameError: name 'random' is not defined >>> import random >>> x = math.sqrt(9) if 2>3 else random.randint(1, 100)
if 表达式1: 语句块1
elif 表达式2: 语句块2
elif 表达式3: 语句块3
else: 语句块4
其中,关键字elif是else if的缩写。
多分支结构
利用多分支选择结构将成绩从百分制变换到等级制
def func(score): if score > 100: return 'wrong score.must <= 100.' elif score >= 90: return 'A' elif score >= 80: return 'B' elif score >= 70: return 'C' elif score >= 60: return 'D' elif score >= 0: return 'E' else: return 'wrong score.must >0'
L
L
L
K1 K2
(1)or,并联 电路
K1 K2
(2)and,串联 电路
K
(3)not,短 路
条件表达式
▪ 比较特殊的运算符还有逻辑运算符“and”和“or”以及关系运算符,具有短路 求值或惰性求值的特点,只计算必须计算的表达式的值。
▪ 以“and”为例,对于表达式“表达式1 and 表达式2”而言,如果“表达式1” 的值为“False”或其他等价值时,不论“表达式2”的值是什么,整个表达式 的值都是“False”,此时“表达式2”的值无论是什么都不影响整个表达式的 值,因此将不会被计算,从而减少不必要的计算和判断。
▪ 从这个意义上来讲,几乎所有的Python合法表达式都可以作为条件表达式,包 括含有函数调用的表达式。
>>> if 3:
#使用整数作为条件表达式
print(5)
5
>>> a = [1, 2, 3]
>>> if a:
#使用列表作为条件表达式
print(a)
[1, 2, 3]
>>> a = []
>>> if a:
print('Empty')
['1', '2', '3', '4', '5']
双分支结构
条件表达式是否成立?
否 是
语句块2
语句块1
双分支结构
Python还支持如下形式的表达式:
value1 if condition else value2
当条件表达式condition的值与True等价时,表达式的值为value1,否则表达式的值为value2。另 外,在value1和value2中还可以使用复杂表达式,包括函数调用和基本输出语句。这个结构的表 达式也具有惰性求值的特点。
选择结构应用
选择结构应用
也可以使用datetime模块提供的功能来计算
>>> today = datetime.date.today() >>> today datetime.date(2015, 7, 27) >>> firstDay = datetime.date(today.year,1,1) >>> firstDay datetime.date(2015, 1, 1) >>> daysDelta = today-firstDay+datetime.timedelta(days=1) >>> daysDelta.days 208
第5章选择语句
判断语句
红灯停,绿灯行
现实生活中,过马路要看红绿 灯,如果是绿灯才能过马路, 否则需要停止等待。
if 语句
if语句是最简单的条件判断语句, 它可以控制程序的执行流程。
if 判断条件: 满足条件时要做的事情1… 满足条件时要做的事情2… ...(省略)... 满足条件时要做的事情n…