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
2 3
>>> x,y=y,x
>>> print x,y,z
1 3

可以获取或删除字典中任意的键-值对,可以使用popitem方

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

链式赋值

链式赋值是将同一个值赋给多个变量的捷径。

>>> x = y = 42
# 同下效果:
>>> y = 42
>>> x = y
>>> x

增理赋值

>>> 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
#输出
2
4
.
.

再看下面的例子(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
#输出
2
4
.
.

是不是比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
#输出
>>>

 

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,结果
时间: 2024-09-23 17:13:59

python基础学习笔记(六)的相关文章

python基础学习笔记(一)

安装与运行交互式解释器       在绝大多数linux和 UNIX系统安装中(包括Mac OS X),Python的解释器就已经存在了.我们可以在提示符下输入python命令进行验证(作者环境ubuntu) fnngj@fnngj-H24X:~$ python Python 2.7.3 (default, Sep 26 2012, 21:53:58) [GCC 4.7.2] on linux2 Type "help", "copyright", "cre

python基础学习笔记(九)

python异常   python用异常对象(exception object)来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯(Traceback, 一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer

python基础学习笔记(十三)

re模块包含对 正则表达式.本章会对re模块主要特征和正则表达式进行介绍.   什么是正则表达式 正则表达式是可以匹配文本片段的模式.最简单的正则表达式就是普通字符串,可以匹配其自身.换包话说,正则表达式'python' 可以匹配字符串'python' .你可以用这种匹配行为搜索文本中的模式,并且用计算后有值并发特定模式,或都将文本进行分段.   ** 通配符 正则表达式可以匹配多于一个的字符串,你可以使用一些特殊字符创建这类模式.比如点号(.)可以匹配任何字符.在我们用window 搜索时用问

python基础学习笔记(十一)

迭代器   本节进行迭代器的讨论.只讨论一个特殊方法---- __iter__  ,这个方法是迭代器规则的基础.   迭代器规则 迭代的意思是重复做一些事很多次---就像在循环中做的那样.__iter__ 方法返回一个迭代器,所谓迭代器就是具有next方法的对象,在调用next方法时,迭代器会返回它的下一个值.如果next方法被调用,但迭代器没有值可以返回,就会引发一个StopIteration异常.   这里是一个婓波那契数例,使用迭代器如下: class Fibs: def __init__

python基础学习笔记(二)

继续第一篇的内容,讲解,python的一些基本的东西.   注释   为了让别人能够更容易理解程序,使用注释是非常有效的,即使是自己回头再看旧代码也是一样. >>> #获得用户名: >>> user_name = raw_input("what is your name?") 在python 中用井号(#)表示注释.井号(#)右边的内存将不被程序执行.即使没有注释,也应该让代码本身易于理解.幸好!Python是一门出色的语言,它能帮助程序员编写易于理

python基础学习笔记(三)

序列概览 Python 包含6 种内建的序列,这里重点讨论最常用的两种类型:列表和元组. 列表与元组的主要区别在于,列表可以修改,元组则不能.也就是说如果要根据要求来添加元素,那么列表可以会更好用:而出于某些原因,序列不能修改的时候,使用元组则更为合适. 在操作一组数值的时候,序列很好用.可以用序列表示数据库中一个人的信息---第一1是姓名,第2个元素是年龄.根据上述内容编写一个列表. >>> hu=['huhu',25] 同时,序列也可以包含其他的序列,因此,构建如下一个人员的信息的列

python基础学习笔记(十二)

模块 前面有简单介绍如何使用import从外部模块获取函数并且为自己的程序所用: >>> import math >>> math.sin(0) #sin为正弦函数 0.0   模块是程序 任何python程序都可以作为模块导入.假设写如下程序,并且将它保存为以C:\python\hello.py #hello.py print "hello,world!" 下面通过python解释器调用: >>> import sys >&

python基础学习笔记(十)

魔法方法.属性 ------------------------   准备工作 为了确保类是新型类,应该把 _metaclass_=type 入到你的模块的最开始. class NewType(Object): mor_code_here class OldType: mor_code_here 在这个两个类中NewType是新类,OldType是属于旧类,如果前面加上 _metaclass_=type ,那么两个类都属于新类.     构造方法   构造方法与其的方法不一样,当一个对象被创建会

python基础学习笔记(五)

字符串基本操作 所有标准的序列操作(索引.分片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作.但是,请注意字符串都是不可变的.   字符串的方法: 字符串从string 模块中"继承"了很多方法,这里只介绍一些特别有用的.   1.find  find 方法可以在一个较长的字符串中查找子字符串.它返回子串所在位置的最左端索引.如果没有找到则返回-1. >>> 'with a moo-moo here. and a moo-mo