标签:
Python 学习笔记
答:Print("输出内容",end=‘不换行的分隔内容‘),其中end=后面为2个单引号
注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号
答:Python中的对象包含三要素:id、type、value
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值
is判断的是a对象是否就是b对象,是通过id来判断
==判断的是a对象的值是否和b对象的值相等,是通过value来判断
答:1). 单引号与双引号的使用:若字符串内容中只包含单引号不包含双引号则用双引号包围,若字符串中只包含双引号不包含单引号则用单引号包围。
2). 转义字符\n用于在print()函数中进行换行
3). 在print()函数中,字符‘\‘用于表示下一行在逻辑上是本行的连续内容
4). r"字符串"中,r用于表示生成"原始"字符串
答:乘号在数学计算中表示乘法运算,在字符串运算中表示对该字符串多次重复;加号在数学计算中表示加法运算,在字符串运算中表示对多个字符串的连接
答:s.strip(rm):其中,s为字符串,rm为所要删除的字符序列。有以下几种变体
1). s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
2). s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
3). s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符
4). 当rm为空时,默认删除边上的空白符(包括‘\n‘, ‘\r‘, ‘\t‘, ‘ ‘)
5). rm序列中的元素不分先后次序,
答:1). 字符串索引,也称索引切片,用中括号[]表示,[第一个索引值:第二个索引值],结果包括第一个索引值,但不包括第二个索引值。索引默认值第一个为0,第二个为字符串长度,及忽略第一个则从首字符开始索引,忽略第二个则索引到最后一个字符。索引值可以为负数,此时将从右边开始计算,若索引值为正数则表示从左边开始计算。
2). Python字符串不可变,向字符串索引赋值会发生错误
3). 切片操作不变性:s[:i]+s[i:]=s
答:1). 双引号所表示的字符串通常要写成一行,若要写成多行要使用\(连行符)
2). 三引号不需要使用行转义符"\n"
答:1). 替换:a[0:3]=[1,2,3]
2). 删除:a[0:4]=[]
3). 清空:a[:]=[]
4). 插入:a[2:2]=[1,2,3,4,5]
5). 嵌套:b=[3,5,7]
a=[1,b,9],即a=[1,[3,5,7],9]
此时len(a)=3,a[1][2]=7
答:一个表达式内可以同时对多个变量进行赋值
答:Python中,任何非零整数都是True,0是False;对任意序列,长度不为0的相当于True,空序列相当于False。(注:仅仅在使用时相当于)
答:for语句依据序列中的子项顺序进行迭代,句式为:for x in a:(注意,句末有冒号)
内置函数,可用于生成一个等差级数链表。range(Start, end, step),其中step可缺省,缺省时默认为1
用于跳出最近以及for 或 while循环(同C/C++中的一样)
pass 语句什么也不做,用于那些在语法上必须要有语句,然而程序什么都不做的场景
这通常用于创建最小结构的类:
或在创建新代码时用来当做函数或控制体的占位符
f(arg1,arg2,…..)、f(arg1=<value1>,arg2=<value2>,…)、f(*arg1,*arg2,…)、f(**arg1,**arg2,…);这4种方式可以组合使用,但要注意遵循以下规则:arg=<value>必须在arg之后、*arg必须在arg=<value>之后、**arg必须在*arg之后,即argàarg=<value>à*argà**arg
在进行调用时所给的实参必须与形参个数相同,且赋值是所对应的先后位置也必须完全符合;
因为在函数定义时已经有给形参赋予默认值,故在调用时可以不再赋新值,若未赋新值则按定义时给的默认值。默认值只会被赋值一次,但是当默认值为列表、字典或其他可变对象时默认值在调用过程中会积累。如下例:
结果:
若不想让默认值在后续调用中累积,可用以下方式
结果
结果:
如上,append(), extend(), insert(), remove(), sort(), reverse()均没有返回他们的值而是返回None,在Python中对所有可变的数据类型这是统一的设计原则。对比以下程序:
堆栈:后进先出。用append()方法可以将一个数据添加到堆栈顶,用不指定索引(即不给定[i])的pop()可将一个元素从堆栈顶释放出来
队列:先进先出。不过列表这样用效率太低,相对来说,数据从列表的末尾添加和弹出很快,但是从其头插入和弹出则很慢(为了一个元素需要移动整个列表的所有元素)
若要实现队列,可以用collections.deque(即collections库中的deque模块),它为在首尾两端快速插入和删除而设计
列表推导式即:从序列中创建列表。如:
当列表有2个元素时:
结果:
以下结果原因待分析
从列表中按给定的索引删除值(语pop()的按值删除不同)。del语句还可以从列表中删除切片或清空整个列表。在变量被删除后若再引用该变量则会引发错误(直到另一个值赋给它为止)
元组是由无数个逗号分隔的值组成的,在元组的输入时可以有或没有括号"()",但一般来说括号是必须的。元组在输出时都是有括号的。
不能给元组的一个独立的元素赋值(即元组的各元素是不可变的),但是可以通过联接和切割来模拟。同时元组还可以创建包含可变对象的元组,例如链表。
结果
集合是一个无序不重复元素的集。基本功能包含关系测试和消除重复元素。
大括号{}或set()函数可以用来创建集合。注意,若要创建空集合必须使用set()而不是{},后者用于创建空字典。
结果
结果
没看懂,待补充
在模块后加入如下代码:
if __name__ == "__main__":
import sys
fib(int(sys.argv[1]))
内置函数dir()用于按模块名搜索模块定义,他返回一个字符串类型的存储列表
命名空间是从命名到对象的映射。当前命名空间主要通过Python字典来实现。
Python中任何一个"."之后的命名为属性,从模块中引用命名是引用属性。
作用域就是一个Python程序可以直接访问命名空间的正文区域,在这里,直接访问的意思是一个对名称的错误引用会尝试在命名空间内查找
类定义形式:
<statement-1>
.
.
.
<statement-N>
习惯上,类定义语句的内容通常是函数定义,不过其他语句也可以。
def __init__(self):
self.data = []
类定义了方法__init__()的话,类的实例化操作会自动为新创建的类实例调用__init__()方法。
大括号和其中的字符会被替换成传入str.format()的参数。大括号中的数值用于指明使用传入str.format()方法的对象中的哪一个(数值从0开始)。
str.format()调用时可以使用关键字参数也可以使用参数名来引用值
‘!a‘(应用ASCII), ‘!s‘(应用str()), ‘!r‘(应用repr())可以在格式化前转换值
字段名后允许可选的‘:‘ 和格式指令。这允许对值的格式化加以更深入的控制。
在字段后的‘:‘ 后面加一个整数会限定该字段的最小宽度,这在美化表格时很有用
若有的字符串很长,我们并不想像上面的例子那样把2个元素分割那么开,则可以传入整个字典,用中括号来访问它的键
显然,此种方法并不好用,因为每个键:值对均需由我们来输入键才可以得到值
操作符% 也可以用于字符串格式化。因为str.format()还很新,大量Python代码中还在使用%操作符,但因为就是操作符终将被舍弃,应该尽量使用str.format()
函数open()返回对象文件,通常的用法为:open(filename, mode): 可选mode 有
‘r‘—只读(默认)、‘w‘—只写,不可读(若有同名文件则将其覆盖)、‘a‘—追加(若文件不存在则新建,若存在则在其末尾加入)、‘r+‘—以读写方式打开;‘b‘—以二进制方式打开文件,在操作jpeg或exe这种二进制文件时必须用二进制模式打开。
pickle.dump()
Pickle.load()
待补充
raise语句允许程序员强制抛出一个指定的异常。
在程序中用户可以通过创建新的异常类型来命名自己的异常,异常类通常应该直接或间接地从Exception类派生
标签:
原文地址:http://www.cnblogs.com/wumingshun/p/4644077.html