学到这里已经很不耐烦了,前面的数据结构什么的看起来都挺好,但还是没法用它们做什么实际的事。从这一章节开始有点难度,需要好好理解。

基本语句的更多用法


使用逗号输出

  1. >>> print 'age:',25
  2. age: 25

如果想要同时输出文本和变量值,却又不希望使用字符串格式化的话,那这个特性就非常有用了:

  1. >>> name = 'chongshi'
  2. >>> salutation = 'Mr'
  3. >>> greeting = 'Hello.'
  4. >>> print greeting,salutation,name
  5. Hello. Mr chongshi

模块导入函数

从模块导入函数的时候,可以使用

import somemodule

或者

form somemodule immport  somefunction

或者

from somemodule import somefunction.anotherfunction.yetanotherfunction

或者

from somemodule import *

最后一个版本只有确定自己想要从给定的模块导入所有功能进。

如果两个模块都有open函数,可以像下面这样使用函数:

module.open(...)

module.open(...)

当然还有别的选择:可以在语句末尾增加一个as子句,在该子句后给出名字。

  1. >>> import math as foobar #为整个模块提供别名
  2. >>> foobar.sqrt(4)
  3. 2.0
  4. >>> from math import sqrt as foobar #为函数提供别名
  5. >>> foobar(4)
  6. 2.0

赋值语句

序列解包

  1. >>> x,y,z = 1,2,3
  2. >>> print x,y,z
  3. 1 2 3
  4. >>> x,y=y,x
  5. >>> print x,y,z
  6. 2 1 3

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

  1. >>> scoundrel ={'name':'robin','girlfriend':'marion'}
  2. >>> key,value = scoundrel.popitem()
  3. >>> key
  4. 'name'
  5. >>> value
  6. 'robin'

链式赋值

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

  1. >>> x = y = 42
  2. # 同下效果:
  3. >>> y = 42
  4. >>> x = y
  5. >>> x
  6. 42

增理赋值

  1. >>> x = 2
  2. >>> x += 1 #(x=x+1)
  3. >>> x *= 2 #(x=x*2)
  4. >>> x
  5. 6

控制语句


if 语句:

  1. name = raw_input('what is your name?')
  2. if name.endswith('chongshi'):
  3. print 'hello.mr.chongshi'
  4. #输入
  5. >>>
  6. what is your name?chongshi #这里输入错误将没有任何结果,因为程序不健壮
  7. #输出
  8. hello.mr.chongshi

else子句

  1. name = raw_input('what is your name?')
  2. if name.endswith('chongshi'):
  3. print 'hello.mr.chongshi'
  4. else:
  5.   print 'hello,strager'
  6. #输入
  7. >>>
  8. what is your name?hh #这里输和错误
  9. #输出
  10. hello,strager

elif 子句

它是“else if”的简写

  1. num = input('enter a numer:')
  2. if num > 0:
  3. print 'the numer is positive'
  4. elif num < 0:
  5. print 'the number is negative'
  6. else:
  7.   print 'the nuber is zero'
  8. #输入
  9. >>>
  10. enter a numer:-1
  11. #输出
  12. the number is negative

嵌套

下面看一下if嵌套的例子(python是以缩进表示换行的)

  1. name = raw_input('what is your name?')
  2. if name.endswith('zhangsan'):
  3. if name.startswith('mr.'):
  4. print 'hello.mr.zhangsan'
  5. elif name.startswith('mrs.'):
  6. print 'hello.mrs.zhangsan'
  7. else:
  8. print 'hello.zhangsan'
  9. else:
  10. print 'hello.stranger'

  如果输入的是“mr.zhangsan”输出第一个print的内容;输入mrs.zhangshan,输出第二个print的内容;如果输入“zhangsan”,输出第三个print的内容;如果输入的是别的什么名,则输出的将是最后一个结果(hello.stranger)

断言

如果需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert 语句可以在程序中设置检查点。

  1. >>> age = 10
  2. >>> assert 0 < age < 100
  3. >>> age = -1
  4. >>> assert 0 < age < 100 , 'the age must be realistic'
  5.  
  6. Traceback (most recent call last):
  7. File "<pyshell#8>", line 1, in <module>
  8. assert 0 < age < 100 , 'the age must be realistic'
  9. AssertionError: the age must be realistic

循环语句


打印1到100的数(while循环)

  1. x= 1
  2. while x <= 100:
  3. print x
  4.   x += 1
  5. #输出
  6. 1
  7. 2
  8. 3
  9. 4
  10. .
  11. .
  12. 100

再看下面的例子(while循环),用一循环保证用户名字的输入:

  1. name = ''
  2. while not name:
  3. name = raw_input('please enter your name:')
  4. print 'hello.%s!' %name
  5. #输入
  6. >>>
  7. please enter your name:huhu
  8. #输出
  9. hello.huhu!

打印1到100的数(for 循环)

  1. for number in range(1,101):
  2.   print number
  3. #输出
  4. 1
  5. 2
  6. 3
  7. 4
  8. .
  9. .
  10. 100

是不是比while 循环更简洁,但根据我们以往学习其它语言的经验,while的例子更容易理解。

一个简单for 语句就能循环字典的所有键:

  1. d = {'x':1,'y':2,'z':3}
  2. for key in d:
  3.   print key,'corresponds to',d[key]
  4. #输出
  5. >>>
  6. y corresponds to 2
  7. x corresponds to 1
  8. z corresponds to 3

break语句

break 用来结束循环,假设找100以内最大平方数,那么程序可以从100往下迭代到0,步长为-1

  1. from math import sqrt
  2. for n in range(99,0,-1):
  3. root = sqrt(n)
  4. if root == int(root):
  5. print n
  6. break
  7. #输出
  8. >>>
  9. 81

continue 语句

continue结束当前的迭代,“跳”到下一轮循环执行。

  1. while True:
  2. s=raw_input('enter something:')
  3. if s == 'quit':
  4. break
  5. if len(s) < 3:
  6. continue
  7.   print 'Input is of sufficient length'
  8. #输入
  9. >>>
  10. enter something:huzhiheng #输入长度大于3,提示信息
  11. Input is of sufficient length
  12. enter something:ha #输入长度小于3,要求重输
  13. enter something:hah #输入长度等于3,提示信息
  14. Input is of sufficient length
  15. enter something:quit #输入内容等于quit,结果
 

python基础教程(六)的更多相关文章

  1. 改写《python基础教程》中的一个例子

    一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看 ...

  2. .Net程序员之Python基础教程学习----列表和元组 [First Day]

    一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...

  3. python基础教程笔记—即时标记(详解)

    最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...

  4. python基础教程(一)

    之所以选择py交易有以下几点:1.python是胶水语言(跨平台),2.python无所不能(除了底层),3.python编写方便(notepad++等文本编辑器就能搞事情),4.渗透方面很多脚本都是 ...

  5. Python基础教程2上的一处打印缺陷导致的代码不完整#1

    #1对代码的完善的 出现打印代码处缺陷截图: 图片上可以看到,定义的request根本没有定义它就有了.这个是未定义的,会报错的,这本书印刷问题,这个就是个坑,我也是才发现.花了点时间脱坑. 现在发完 ...

  6. python基础教程(第二版)

    开始学习python,根据Python基础教程,把里面相关的基础章节写成对应的.py文件 下面是github上的链接 python基础第1章基础 python基础第2章序列和元组 python基础第3 ...

  7. python基础教程1:入门基础知识

    写在系列前,一点感悟 没有梳理总结的知识毫无价值,只有系统地认真梳理了才能形成自己的知识框架,否则总是陷入断片儿似的学习-遗忘循环中. 学习方法真的比刻苦"傻学"重要多了,而最重要 ...

  8. Python基础教程-第3版(文字版) 超清文字-非扫描版 [免积分、免登录]

    此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Python基础教程-第3版 备用下载:Python基础教程-第3版

  9. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  10. 【Python】Python基础教程系列目录

    Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 在现在的工作及开发当中,Python的使用越来越广泛,为了方便大家的学习,Linux大学 特推出了 <Python基 ...

随机推荐

  1. TCP/IP协议之ping和traceroute

    Ping程序就是调用的就是ICMP报文.利用的是ICMP的应答和回显请求.来看下具体的ping报文. Request的报文类型为8 Reply的类型为0 通过具体的ping报文可以看到ping报文的大 ...

  2. 移动端 transitionEnd函数用来检测过渡是否完成

    注意的几点:兼容 'webkitTransitionEnd' 解绑 renmove tab_wrap.addEventListener('transitionEnd',transitionEnd); ...

  3. AD7928

    实验室板子soc-de1自带的7928芯片,下面记录一下它的参数 吞吐速率 : 1MSPS 吞吐速率 : 是指ADC器件单位时间内能处理的任务数或输出结果的数量.单位:SPS(Samples per ...

  4. UESTC 30 &&HDU 2544最短路【Floyd求解裸题】

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. Android学习笔记- Fragment实例 底部导航栏的实现

    1.要实现的效果图以及工程目录结构: 先看看效果图吧: 接着看看我们的工程的目录结构: 2.实现流程: Step 1:写下底部选项的一些资源文件 我们从图上可以看到,我们底部的每一项点击的时候都有不同 ...

  6. Android学习笔记-TextView(文本框)(二)

    2.4 使用autoLink属性识别链接类型 当文字中出现了URL,E-Mail,电话号码,地图的时候,我们可以通过设置autoLink属性:当我们点击 文字中对应部分的文字,即可跳转至某默认APP, ...

  7. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    这里先写几个大家容易搞混的编码设置代码: 在jsp代码中的头部往往有这两行代码 pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码J ...

  8. XML 入门 - XML 系统教程(1)

    XML (Extensible Markup Language)指可扩展标记语言. 组成 <?xml version="1.0" encoding="UTF-8&q ...

  9. Java Socket 编程

    1. 背景 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节.你可以直接使用这些类和 ...

  10. Java中的char究竟能存中文吗?

    今天面试被问到"Java中的char能存中文吗?",我回答有的字能有的字不能,结果被嘲笑了,不过我也忘了字符编码的相关知识所以也没能解释.晚上查了下资料,记录一下. 网上搜索这个问 ...