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

 

基本语句的更多用法


 

使用逗号输出

>>> 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

循环语句


 打印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,结果


发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

python基础学习笔记(七)知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。