Python程序控制结构---第三天笔记

类:数据+方法

变量名没有类型

对象才有类型

类型一旦确定,其可做的操作取决于此类型所支持的方法

. 号运算符

可调用属性:数据

返回一个数据,显示需要使用print语句

可调用方法:操作()

调用:执行一段代码

可调用对象:callable()

这么理解吧~~~

In [61]: def printName():

....:     print ‘hello‘

....:

In [62]: callable(printName)

Out[62]: True

In [63]: callable(int)

Out[63]: True

列表:[]

元组:()

字典:{}

数值:

获取使用帮助:

获取对象支持的使用的属性和方法:dir()

某种方法的具体使用帮助:help()

获取可调用对象的文档字串:print obj.__doc__

*************集合:无序排列、可哈希*****************

支持集合关系测试

成员关系测试

in

not in

迭代

不支持:索引、元素获取、切片

集合类型:

set()

frozenset()

没有特定语法格式,只能通过工厂函数创建

In [86]: s1 = set([1,2,3])

In [87]: s1.

s1.add                          增加一个元素,可以是一个字串

s1.issubset

s1.clear

s1.issuperset

s1.copy       制作一份副本

s1.pop

s1.difference   求差集

s1.remove

s1.difference_update

s1.symmetric_difference 对称差,也可以^

s1.discard

s1.symmetric_difference_update

s1.intersection     交集,也可以用&

s1.union 求并集

s1.intersection_update

s1.update 合并两个集合,支持异构

s1.isdisjoint

In [87]: len(s1) 集合中的项数

Out[87]: 3

*************容器、类型、对象*****************

所有对象都有引用计数 sys.getrefcount

列表和字典都支持两种类型的复制操作:浅复制和深复制【deepcopy()】

python中的所有对象都是‘第一类的’,这意味着使用标识符命名的所有对象都具有相同的状态,于是,能够命名的所有对象都可以直接当数据直接处理

所有序列都支持迭代

所有序列都支持的操作和方法:

s[i]

s[i:j]

s[i:j:stride]

len(s)

min(s)

max(s)

sum(s)

all(s)

any(s)

s1 + s2 连接

s1 * N 重复

obj in s1 成员关系判断

obj not in s1

可变序列操作

s1[index] = value

s1[i:j] = t:切片赋值

del s1[index]

del s1[i:j]

del s1[i:j:stride]

*************表达式和语句*****************

常用的表达式操作符

+ -

* / // %

逻辑运算

or and not

成员关系测试

in not index

对象实例测试

is not is

比较运算

< > <= >= == !=

位运算:

| & ^ << >>

一元运算

-x +x ~x

幂运算

x ** y

索引和分片

x[i], x[i,j], x[i,j,stride]

调用:

x(...)

取属性:

x.attribute

元组:()

序列:[...]

字典:{...}

三元选择表达式:x if y else z

匿名函数:lambda args:express

生成器函数发送协议:yield x

运算优先级:

(...), [...],{...}

s(i), s(i,j)

s.attribute

s(...)

一元运算

x ** y

*,/,//,%

+,-

<<,>>

&

^

|

<,<=,>,>=,==,!=

is,not is

in, not in

not

and

or

lambda

语句:

赋值语句

调用

print:

if/elif/else

for/else

while/else

pass:占位符

break:跳出最内层循环

continue:调到所处的最近层循环的开始处

return

yield

global:命名空间

raise:触发异常

import

from:模块属性访问

else代码块:循环终止才会执行,但是如果break终止的循环则不执行

class

try/except/finally:捕捉异常

del:删除引用

assert:调试检查

with/as:环境管理器

赋值语句:

隐式赋值:import,from,def,class,for,函数参数

元组和列表分解复制:当赋值符号(=)的左侧为元组或列表时,python会按照位置吧右侧的对象和左侧的目标自左而右逐一配对;个数不同时触发异常

l1 = (‘a‘,‘b‘,‘c‘)

x,y,z = l1

多重目标赋值

num1 = num2 = num3 = 44

增强赋值:+=, -=, *=, /=, //=, %=

流程控制结构

**************比较操作****************

python对象都支持比较操作

数字:通过大小比较

字符串:按照字母顺序

列表和元组:自左至右比较各部分内容

字典:对排序之后的(键,值)列表进行比较

python中的真假:

任何非0和数字和非空对象都为真

数字0和空对象以及特殊对象均为假

比较和相等测试会递归地应用于数据结构中

返回值为True和False

组合条件测试

x and y:与运算

x or y:或运算

not x:非运算

*************if : elif : else :*****************

In [11]: name = ‘jerry‘

In [13]: if name == ‘Tom‘:

....:     print "It si %s" %name

....: elif name == "hanmeimei":

....:     print "It is %s" %name

....: else:

....:     print "alien"

*************A = X if Y else Z 三元表达式*****************

In [14]: A = 7

In [15]: B = 9

In [16]: max = A if A > B else B

In [17]: print max

9

*************while : else:*****************

用于编写通用迭代结构

顶端测试为真即会执行循环体,并会重复执行测试直到为假

In [19]: url = ‘www.magedu.com‘

In [20]: while url:

....:     print url

....:     url = url[1:]

....:

www.magedu.com

ww.magedu.com

w.magedu.com

.magedu.com

magedu.com

agedu.com

gedu.com

edu.com

du.com

u.com

.com

com

om

m

########

url = ‘www.magedu.com‘

while url:

print url

url = url[:-1]

########

url = ‘www.magedu.com‘

x = 0

while url:

print url

url = url[:-1]

x += 1

if x < 7 :

break

else:

print "game over"

########

x = 0 ; y = 100

In [27]: while x < y :

print x,

x+=1

....:

0 1 2 3 4 5 6 7 8 ... 98 99

########

练习1:逐一显示列表中的元素

In [46]: l1 = [‘z‘,‘c‘,‘v‘]

In [47]: len(l1)

Out[47]: 3

In [48]: i = 0

In [49]: while i < len(l1) :

....:     print l1[i]

....:     i += 1

....:

方法2

In [51]: while l1:

....:     print l1[0]

....:     l1 = l1[1:]

....:

逆序:

In [56]: while l1:

print l1[-1]

l1 = l1[:-1]

########

练习2:求100以内所有的偶数

########

练习3:逐一显示字典的所有键,并在最后说明总键数

In [59]: d1 = {‘x‘:1, ‘y‘:2, ‘z‘:3}

keyslist  = d1.keys() 生成key列表

valuelist = d1.values() 生成value列表

In [116]: while keylist:

print keylist[0]

keylist.pop(0)

########

练习4:创建一个包含100以内所有奇数的列表

In [132]: l1 = []

In [133]: i = 1

In [134]: while i < 100:

.....:     l1.append(i)

.....:     i += 2

.....: else:

.....:     print l1

.....:

########

练习5:列表

l1 = [0,1,2,3,4,5,6]

l2 = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]

以第一个列表中的元素为键,第二个列表中的元素为值生成字典d1

In [138]: i = 0

In [139]: d1 = {}

In [140]: while i < 7 :

.....:     d1.update({l1[i]:l2[i]}) #也可以d1[l1[i]] = l2[i],给键值赋值

.....:     i += 1

.....: else:

.....:     print d1

注意:可以在循环外加if语句判断列表的长度len()

########

*************for  in iterable: else:*****************

一个通用的序列迭代器,用于遍历任何有序的序列对象内的元素

可用于字符串、元组、列表和其他的内置可迭代对象,以及通过类所创建的新对象

########

url = "www.baidu.com"

for x in url:

print x

########

In [24]: sum = 0

In [25]: for i in range(1,101): 也可以xrangge(1,101)

sum += i

....: else:

....:     print sum

....:

5050

########

*************隐性迭代工具*****************

in成员关系测试

列表解析

map、reduce和filter函数

*************zip 并行遍历*****************

1. 取得一个或多个序列为参数,将给定的序列中并排的元素配成元组,

返回这些元组的列表

2. 可在for循环中用于实现并行迭代

3. 也常用于动态构造字典

####例子####

keys = [0,1,2,3,4,5,6]

values = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]

D = {}

for (k,v) in zip(keys,values):

D[k] = v

else:

print D

时间: 2024-08-04 20:26:27

Python程序控制结构---第三天笔记的相关文章

python程序控制结构

一:顺序结构 顺序结构的程序是指程序中的所有语句都是按照书写顺序逐一执行的,但是顺序结构的程序功能有限. 二:选择结构 选择结构也称为分支结构,用于处理在程序中出现两条或更多执行路径可供选择的情况.选择结构可用分支语句来实现. 2.1 if语句 if 表达式1: 语句... elif 表达式2 : 语句... else: 语句... if嵌套 语句格式 if 表达式1: 语句.. if 表达式2: 语句... elif 表达式3: 语句... else: 语句... elif 表达式4: 语句.

Python 四、Python程序控制结构

一.python的表达式和语句 1.表达式 2.语句

python学习:程序控制结构·作业20141219

Python学习:程序控制结构 20141219 编程环境: windows 7 x64 python 2.7.6 题目: 1 编写程序,完成下列题目(1分) 题目内容: 如果列出10以内自然数中3或5的倍数,则包括3,5,6,9.那么这些数字的和为23.要求计算得出任意正整数n以内中3或5的倍数的自然数之和. 输入格式: 一个正整数n. 输出格式: n以内中3或5的倍数的自然数之和. 输入样例: 10 输出样例: 23 时间限制:500ms内存限制:32000kb n = int(raw_in

python核心编程-第三章-个人笔记

1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括号时可以跨行书写,无须反斜杠:三引号的字符串也可以跨行书写 (2)分号";"可以在同一行写多个语句.虽然python支持这么做,但为了代码可读性,一般不建议这么做 2.变量赋值 (1) python中,对象是引用传递的,而不是直接将值赋给对象  如: >>> a = 12

python之转移字符(学习笔记三)

python之转移字符(学习笔记三) 转义字符 \ 可以转义很多字符,比如 \n 表示换行, \t 表示制表符,字符 \ 本身也要转义,所以 \\ 表示的字符就是 \ ,可以在Python的交互式命令行用print打印字符串看看: 命令: >>>print 'he\'s a boy.' >>>print 'I\'m learning\nlinux.' >>>print '\\\n\\' 截图: 如果字符串里面有很多字符都需要转义,就需要加很多 \ ,为

Python学习笔记一:第一个Python程序,变量,字符编码与二进制,用户交互程序

第一个python程序 Windows:设置环境变量,X:\pthonxxx,xxx是版本号 在命令提示符下 输入python,进入解释器 >>>print("Hello World!") >>>exit() 编辑文件helloworld.py 执行:python helloworld.py Linux:./helloworld.py   声明解释器:#!/usr/bin/env python  在环境变量中找python Chmod 755 hel

《从问题到程序》第三章学习笔记

知识总结 pan_area(3.24)是函数调用表达式,表示用实参3.24去调用函数pan_area.double pan_area(double r)表示本函数的名字是pan_area,其返回值类型是double.这个函数只有一个参数,所以参数表里只有一对类型描述和参数名,说明参数的类型是double,名字是r. int main() { ...... return 0; } 以main为名字的函数的地位特殊,它表示这个程序的执行起点和整个过程.在一个C程序启动时,其执行就从它的main函数的

月薪3万的python程序员都看了这本书

想必大家都看过吧 Python编程从入门到实践 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌握让你终身受益的基本编程知识.本书适合任何年龄的读者阅读,它不要求你有任何 Python 编程经验,甚至不要求你有编程经验.如果你想快速掌握基本的编程知识以便专注于开发感兴趣的项目,并想通过解决有意义的问题来检查你对新学概念的理解程度,那么本书就是为你编写的.本书还可供初中和高中教师用来通过开发项目

(6)javascript的程序控制结构及语句-----(1)条件判断

程序控制结构及语句 编程就是将现实应用,转换为程序能够读得懂的语法语句.Javascript编程中对程序流程控制主要是通过条件判断语句.循环控制语句及continue.break来完成的,其中条件判断按预先设定的条件执行顺序,它包括if语句和switch语句:而循环控制语句则可以重复完成任务,它包括while语句.do...while语句及for语句. 一.条件判断语句: 条件判断语句就是对语句中不同条件的值进行判断,进而根据不同条件执行不同的语句.条件判断语句有"if条件语句"和&q