qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

python学习之基本语法

学到这里已经很不耐烦了,前面的数据结构什么的看起来都挺好,但还是没法用它们做什么实际的事。

 

基本语句的更多用法


 

使用逗号输出

>>> 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 "<pyshell#8>", line 1, in <module>     assert 0 < age < 100 , 'the age must be realistic' AssertionError: the age must be realistic
复制代码

 

 

循环语句


 打印1100的数(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!
复制代码

打印1100的数(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,结果
复制代码

 

 

posted on 2014-02-10 11:27 顺其自然EVO 阅读(139) 评论(0)  编辑  收藏 所属分类: python


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜