python基础学习笔记(六)
2013-04-21 22:52 虫师 阅读( ... ) 评论( ... ) 编辑 收藏
学到这里已经很不耐烦了,前面的数据结构什么的看起来都挺好,但还是没法用它们做什么实际的事。
基本语句的更多用法
使用逗号输出
>>> print ' age: ' ,25 age: 25
如果想要同时输出文本和变量值,却又不希望使用字符串格式化的话,那这个特性就非常有用了:
>>> name = ' chongshi ' >>> salutation = ' Mr ' >>> greeting = ' Hello. ' >>> print greeting,salutation,name Hello. Mr chongshi
模块导入函数
从模块导入函数的时候,可以使用
import somemodule
或者
form somemodule immport somefunction
或者
from somemodule import somefunction.anotherfunction.yetanotherfunction
或者
from somemodule import *
最后一个版本只有确定自己想要从给定的模块导入所有功能进。
如果两个模块都有 open 函数,可以像下面这样使用函数:
module.open(...)
module.open(...)
当然还有别的选择:可以在语句末尾增加一个 as 子句,在该子句后给出名字。
>>> import math as foobar # 为整个模块提供别名 >>> foobar.sqrt(4 ) 2.0 >>> from math import sqrt as foobar # 为函数提供别名 >>> foobar(4 ) 2.0
赋值语句
序列解包
>>> x,y,z = 1,2,3 >>> print x,y,z 1 2 3 >>> x,y= y,x >>> print x,y,z 2 1 3
可以获取或删除字典中任意的键 - 值对,可以使用 popitem 方
>>> scoundrel ={ ' name ' : ' robin ' , ' girlfriend ' : ' marion ' } >>> key,value = scoundrel.popitem() >>> key ' name ' >>> value ' robin '
链式赋值
链式赋值是将同一个值赋给多个变量的捷径。
>>> x = y = 42 # 同下效果: >>> y = 42 >>> x = y >>> x 42
增理赋值
>>> x = 2 >>> x += 1 # (x=x+1) >>> x *= 2 # (x=x*2) >>> x 6
控制语句
if 语句:
name = raw_input( ' what is your name? ' ) if name.endswith( ' chongshi ' ): print ' hello.mr.chongshi ' # 输入 >>> what is your name?chongshi # 这里输入错误将没有任何结果,因为程序不健壮 # 输出 hello.mr.chongshi
else 子句
name = raw_input( ' what is your name? ' ) if name.endswith( ' chongshi ' ): print ' hello.mr.chongshi ' else : print ' hello,strager ' # 输入 >>> what is your name?hh # 这里输和错误 # 输出 hello,strager
elif 子句
它是“ else if ”的简写
num = input( ' enter a numer: ' ) if num > 0: print ' the numer is positive ' elif num < 0: print ' the number is negative ' else : print ' the nuber is zero ' # 输入 >>> enter a numer: -1 # 输出 the number is negative
嵌套
下面看一下 if 嵌套的例子( python 是以缩进表示换行的)
name = raw_input( ' what is your name? ' ) if name.endswith( ' zhangsan ' ): if name.startswith( ' mr. ' ): print ' hello.mr.zhangsan ' elif name.startswith( ' mrs. ' ): print ' hello.mrs.zhangsan ' else : print ' hello.zhangsan ' else : print ' hello.stranger '
如果输入的是“ mr.zhangsan ”输出第一个 print 的内容;输入 mrs.zhangshan ,输出第二个 print 的内容;如果输入“ zhangsan ” , 输出第三个 print 的内容;如果输入的是别的什么名,则输出的将是最后一个结果( hello.stranger )
断言
如果需要确保程序中的某个条件一定为真才能让程序正常工作的话, assert 语句可以在程序中设置检查点。
>>> age = 10 >>> assert 0 < age < 100 >>> age = -1 >>> assert 0 < age < 100 , ' the age must be realistic ' Traceback (most recent call last): File "" , line 1, in assert 0 < age < 100 , ' the age must be realistic ' AssertionError: the age must be realistic
循环语句
打印 1 到 100 的数( while 循环)
x= 1 while x <= 100 : print x x += 1 # 输出 1 2 3 4 . . 100
再看下面的例子( while 循环),用一循环保证用户名字的输入:
name = '' while not name: name = raw_input( ' please enter your name: ' ) print ' hello.%s! ' % name # 输入 >>> please enter your name:huhu # 输出 hello.huhu!
打印 1 到 100 的数( for 循环)
for number in range(1,101 ): print number # 输出 1 2 3 4 . . 100
是不是比 while 循环更简洁,但根据我们以往学习其它语言的经验, while 的例子更容易理解。
一个简单 for 语句就能循环字典的所有键:
d = { ' x ' :1, ' y ' :2, ' z ' :3 } for key in d: print key, ' corresponds to ' ,d[key] # 输出 >>> y corresponds to 2 x corresponds to 1 z corresponds to 3
break 语句
break 用来结束循环,假设找 100 以内最大平方数,那么程序可以从 100 往下迭代到 0 ,步长为 -1
from math import sqrt for n in range(99,0,-1 ): root = sqrt(n) if root == int(root): print n break # 输出 >>> 81
continue 语句
continue 结束当前的迭代,“跳”到下一轮循环执行。
while True: s =raw_input( ' enter something: ' ) if s == ' quit ' : break if len(s) < 3 : continue print ' Input is of sufficient length ' # 输入 >>> enter something:huzhiheng # 输入长度大于3,提示信息 Input is of sufficient length enter something:ha # 输入长度小于3,要求重输 enter something:hah # 输入长度等于3,提示信息 Input is of sufficient length enter something:quit # 输入内容等于quit,结果