设为首页 收藏本站
查看: 1527|回复: 0

[经验分享] 《Python基础教程》 读书笔记 第五章(上)条件语句

[复制链接]

尚未签到

发表于 2015-11-29 13:02:40 | 显示全部楼层 |阅读模式
  5.1 print和import的更多信息
  5.1.1使用逗号输出
  打印多个表达式也是可行的,只要将它们用逗号隔开就好:






>>>print'age:',42
age: 42

  

  要同时输出文本和变量值,却又不希望使用字符串格式化:





>>> name='Gumby'
>>> salutation='Mr.'
>>> greeting='Hello.'
>>>print greeting,salutation,name
Hello. Mr. Gumby

  


  如果在结尾处加上逗号,那么接下来的语句会与前一条语句在同一行打印:


  print 'Hello,',
print 'world!'
  Hello, world!


  5.1.2 把某件事作为另一件事导入
  从模块导入函数:


  import somemodule
  from somemodule import somefunctian
  from somemodule import somefunction,anotherfunction,yetanotherfunction
  from somemodule import*


  可以在语句末尾增加一个as子句,在该子句后给出名字,或为整个模块提供别名:




>>> import math as foobar
>>> foobar.sqrt(4)
2.0

  

  也可以为函数提供别名:







>>> from math import sqrt as foobar
>>> foobar(4)
2.0

  
  


  5.2赋值
  5.2.1序列解包
  多个赋值操作可以同时进行:





>>> x,y,z=1,2,3
>>> print x,y,z
1 2 3
>>> x,y=y,x
>>> print x,y,z
2 1 3

  


  序列解包(sequence unpacking)或可选代解包--将多个值的序列解开,然后放到变量的序列中:





>>> values=1,2,3
>>> values
(1, 2, 3)
>>> x,y,z=values
>>> x
1

  


  当函数或者方法返回元组(或者其他序列或可迭代对象)时,这个特性尤其有用。假设需要获取(和删除)字典中任意的键-值对,可以使用popitem方法,这个方法将键-值作为元组返回。那么这个元组就可以直接赋值到两个变量中:
  




>>> scoundrel={'name':'robin','girlfriend':'marion'}
>>> key,value=scoundrel.popitem()
>>> key
'girlfriend'
>>> value
'marion'

  

  它允许函数返回一个以上的值并且打包成元组,然后通过一个赋值语句很容易进行访问。所解包的序列中的元素数量必须和放置在赋值符号=左边的变量数量完全一致,否则Python会在赋值时引发异常:




>>> x,y,z=1,2
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: need more than 2 values to unpack

  

  5.2.2链式赋值
  链式赋值(chained assignment)是将同一个值赋给多个变量的捷径。
  x=y=somefunction()
  和下面语句的效果是一样的:
  y=somefunction()
  x=y
  注意上面的语句和下面的语句不一定等价:
  x=somefunction()
  y=somefunction()
  5.2.3增量赋值
  这里没有将赋值表达式写为x=x+1,而是将表达式运算符放置在赋值运算符的左边,写成x+=1。这种写法叫做增量赋值(augmented assignment),对于*、/、%等标准运算符都适用.





>>> x=2
>>> x+=1
>>> x*=2
>>> x
6

  


  5.3语句块:缩排的乐趣
  语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句。在代码前放置空格来缩进语句即可创建语句块。使用tab字符也可以缩进语句块。Python将一个tab字符解释为到下一个tab字符位置的移动,而一个tab字符位置为8个空格,但是标准且推荐的方式是只用空格,尤其是在每个缩进需要4个空格的时候。
  5.4条件和条件语句
  5.4.1这就是布尔变量的作用
  下面的值在作为布尔表达式的时候,会被解释器看作假(false}:
  False None 0 ”” () [] {}
  换句话说,也就是标准值False和None、所有类型的数字0(包括浮点型、长整型和其他类型)、空序列(比如空字符串、元组和列表)以及空的字典都为假。其他的一切都被解释为真,包括特殊值True.
  5.4.2 条件执行和if语句
  if语句,它可以实现条件执行。即如果条件 (在if和冒号之间的表达式)判定为真,那么后面的语句块就会被执行。如果条件为假,语句块就不会被执行.





name=raw_input('what is your name?:')
if name.endswith('jack'):
print 'hello, Mr.jack'

  


  5.4.3 else子句




name=raw_input('what is your name?:')
if name.endswith('jack'):
print 'hello, Mr.jack'
else:
print 'hello, stranger'

  

  5.4.4 elif子句
  如果需要检查多个条件,就可以使用elif,它是“else if的简写,也是if和else子句的联合使用----也就是具有条件的else子句。




num=input('enter a number:')
if num>0:
print 'the number is positive'
elif num<0:
print 'the number is negtive'
else:
print 'the number is zero'

  

  5.4.5更复杂的条件
  1.比较运算符

  2.相等运算符
  如果想要知道两个东西是否相等,应该使用相等运算符,即两个等号==
  3. is:同一性运算符





>>> x=y=[1,2,3]
>>> z=[1,2,3]
>>> x==y
True
>>> x==z
True
>>> x is y
True
>>> x is z
False

  


  x和z相等却不等同,为什么呢?因为is运算符是判定同一性而不是相等性的。变量x和y都被绑定到同一个列表上,而变量z被绑定在另外一个具有相同数值和顺序的列表上。它们的值可能相等,但是却不是同一个对象。
  4.in:成员资格运算符
  5.字符串和序列比较
  6.布尔运算符
  5.4.7断言
  如果需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert语句就有用了,它可以在程序中置入检查点。





>>> age=10
>>> assert 0<age<100
>>> age=-1
>>> assert 0<age<100
Traceback (most recent call last):
File "<input>", line 1, in <module>
AssertionError

  



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-144931-1-1.html 上篇帖子: QT中 使用c++调用python 下篇帖子: Python(2.7.6) ConfigParser
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表