5.1 print和import的更多信息

1. print()3.0之后print不再是语句,而是函数,

>>> print('udg',12,13)   udg 12 13

>>> name='yanliang'  >>> print(name)  yanliang

2. import 把某件事当做另外一件事导入

import somemodule

from somemodule import somefunction

from somemodule import somefunction1,somefunction2,somefunction3.。。。

from somemodule import *

(1)为导入的模块提供别名:>>> import math as foo  >>> foo.sqrt(4)   2.0

(2)也可以为函数提供别名:>>>from module import function as function1

5.2 赋值魔法

1. 序列解包

(1)多个赋值同时进行:>>> x,y,z=1,2,3  >>> print(x,y,z)  1 2 3

(2)>>> x,y=y,x  >>> print(x,y)  2 1

2. 链式赋值

(1)>>> x=y=2 相当于 >>> y=2  >>> x=y

3. 增量赋值

(1)>>> x+=3 类似于C++中的

5.3 语句块:缩排的乐趣

5.4 条件和条件语句

1. bool值是True配合False  ,bool()函数可以用来转换其它的值。

2. if语句

 name=input("what is your name!")
if name.endswith('liang'):
print('hello,yanliang')

3.else子句

 name=input("what is your name!")
if name.endswith('liang'):
print('hello,yanliang')
else:
print("hello stringer")

4. elseif

5. 嵌套代码块

6. 更复杂的条件

(1)比较运算符:例如x<y , x<=y ,0<x<100也可以等

(2)相等运算符:>>> "foo"=="foo"  True  >>> "foo"=="fod"  False

(3)is: 同一性运算符:

>>> x=y=[1,2,3]  >>> x is y  True  这里x,y被绑定到同一个对象上,所以具有同一性

>>> z=[1,2,3]  >>> z is y  False      z虽然与y是相等的但不是同一个对象所以不具有同一性

(4)in 成员资格运算符

(5)字符串和序列的比较:按照字母顺序排列

(6)bool运算符:and or not

 name=int(input("input the number"))
if name<10 and name>1:
print("OK")
else:
print("wrong")

(7)断言 assert 当不满足条件时直接崩溃退出

5.5 循环

1. while循环

 name=''
while not name:
name=input("please input your name")
print("hello %s !" % name)

2. for循环

 for number in range(10):
print(number)

3. 循环遍历字典元素

 d={"a":1,"b":2,"c":3}
for key in d:
print(key,"corrsponds to",d[key])

4. 一些迭代工具

(1)并行迭代:zip()可以将两个序列合成一个字典对应起来

 key1=['a','b','c']
value2=[1,2,3]
mapa=zip(key1,value2)
for name,age in mapa:
print(name,'is',age)

(2)编号迭代

将字符串数组中的包含‘yan’的自字符串全部替换成‘yanliang’

一种方法:

 strings=['jhsf','yansgd','gd']
print(strings,'\n')
index=0;
for string in strings:
if 'yan' in string:
strings[index]='yanliang'
index+=1
print(strings,'\n') 

第二种方法:采用enumerate函数 enumerate(strings)可以返回索引-值对

 strings=['jhsf','yansgd','gd']
print(strings,'\n')
index=0;
for index,string in enumerate(strings):
if 'yan' in string:
strings[index]='yanliang'
print(strings,'\n')

(3)翻转和排序迭代

sorted和reserved 返回排好序或翻转后的对象

sort和reserve 在原地进行排序或翻转

5. 跳出循环

(1)break

(2)continue

(3)while True  。。。break

6. 循环中的else 语句

5.6 列表推导式——轻量级的循环

>>> [x*x for x in range(10)]  [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

>>> [x*x for x in range(10) if x%3==0]  [0, 9, 36, 81]

5.7 pass del exec

pass: 程序什么也不做

del: 不仅会删除对象的引用也会删除对象的名称,但是那个指向的对象的值是没办法删除的

exec: 执行一个字符串语句

最好是为这个exec语句提供一个命名空间,可以放置变量的地方

eval:

>>> eval(input('please input the number \n'))

please input the number

1+2+3

6

Python基础教程笔记——第5章:条件,循环和其他语句的更多相关文章

  1. Python基础教程之第5章 条件, 循环和其它语句

    Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 #Chapter 5 条件, 循环 ...

  2. Python基础教程笔记——第7章:更加抽象(类)

    下面进入Python的面向对象: 对象的魔力: 多态:---可以对不同类的对象使用同样的操作 封装:---对外部隐藏对象内部的工作方式 继承:---以普通的类为基础建立专门的类对象 (1)多态: is ...

  3. Python基础教程笔记——第4章:字典

    字典 字典是Python唯一内建的数学映射类型,字典中的值没有特殊的顺序,键可以是数字,字符串,甚至是元组 字典的创建: 字典由键值对构成,字典中键是唯一的,而值不唯一.>>> a_ ...

  4. Python基础教程笔记——第2章:列表和元组

    python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] ...

  5. Python基础教程笔记——第1章

    1.8 函数 pow(x,y) x^y abs(x)          取数的绝对值 round(x)   会把浮点数四舍五入为最接近的整数 floor(x)     向下取整的函数,但是需要先imp ...

  6. Python基础教程笔记——第6章:抽象(函数)

    (1)计算裴波那契数列: fbis=[0,1] num=int(input("please input the number")) for i in range(num-2): f ...

  7. Python基础教程笔记——第3章:使用字符串

    字符串是不可修改的,标准序列操作(索引,分片,判断成员资格,求长度,取最大值 最小值)对字符串都是有效的. 格式化字符串,类似于C语言的输出是的感觉. >>> format=&quo ...

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

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

  9. python基础教程笔记—画幅好画(详解)

    今天写一下基础教程里面的第二个项目,主要使用python来做一个pdf的图,比较简单. 首先我们需要安装用到的模块pip install reportlab即可. 书上是用urlopen从往上下了一个 ...

随机推荐

  1. Android利用已有控件实现自定义控件

    Android控件的基本介绍及使用自定义控件的意义         Android 本身提供了很多控件,自定义控件在android中被广泛运用,自定义控件给了我们很大的方便.比如说,一个视图为imag ...

  2. anzhuaggeoip

    1.因启动geoip模块,需要先安装GeoIP # wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz # tar xv ...

  3. Cognos添加维度

    1.打开后台cognos中的报表,创建查询主题 填写该维度的名称 以时间维度为例 从左边添加该维度的单位,修改名称(在Cognos前台显示),如果有逻辑在源里面修改下函数 以此类推.

  4. Java实现Web页面前数字字母验证码实现

    最近公司做项目开发中用到了验证码实现功能,将实现代码分享出来, 前段页面实现代码: 为了表达清晰,样式部分代码去掉了,大家根据自己的需求,自己添加样式. 页面JS代码:触发变动验证码改变的JS 后台 ...

  5. 三大框架所使用的UI框架

  6. TWaver可视化编辑器的前世今生(四)电力 云计算 数据中心

    插播一则广告(长期有效) TWaver需要在武汉招JavaScript工程师若干 要求:对前端技术(JavasScript.HTML.CSS),对可视化技术(Canvas.WebGL)有浓厚的兴趣基础 ...

  7. vue 点击按钮弹窗,点击关闭按钮关闭弹窗。

    <div @click="btnfc()">点击弹窗按钮</div> <div v-show="show"> <div ...

  8. 【Java】Class文件编译的版本号与JDK版本号的对应关系

    查看方式 使用文本编辑器EmEditor以16进制方式打开.class文件 图中红框中的代表版本号52.0 次版本号:00 00   (小数点后面的部分) 主版本号:00 34   (小数点前面的部分 ...

  9. 【BZOJ 1076】[SCOI2008]奖励关(期望)

    Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的 ...

  10. POJ 1236 Network of Schools (强连通分量缩点求度数)

    题意: 求一个有向图中: (1)要选几个点才能把的点走遍 (2)要添加多少条边使得整个图强联通 分析: 对于问题1, 我们只要求出缩点后的图有多少个入度为0的scc就好, 因为有入度的scc可以从其他 ...