python入门学习笔记(一)

趁暑假空闲学一下python以后可能有用,mark一下书之外需要补充的知识点,避免淹没在砖头书中查不到,用于学习记忆和查询回顾(针对3.0):

关于打印:

1)转义字符 ‘\’ :常用于一些容易引起歧义的地方,如单引号的打印(eg:‘Let'\s go’而不能直接打印‘Let's go’)、绝对路径的打印(如直接打印D:\application\visual studio\GaussianFilter\FastGaussFilter,路径名中如果首字母出现r、t、n等,会被解读成制表符等,可以选择加上转义字符避免这种情况的出现D:\\application\visual studio\\GaussianFilter\\FastGaussFilter)

另外,也可直接将整个字符读取为原始字符串方式,如r'D:\application\visual studio\GaussianFilter\FastGaussFilter'.

2)print在python3.0中定义为函数形式,原型为:

                                                print([obj,...][,sep=' '],[,end='\n'][,file=sys.stdout])

其中,sep是多变量打印的间隔参数,默认是‘ ’,空格,也就是说多变量打印以空格隔开,可设置(eg:print(a,b,spe='...'),使用三个点隔开);同理end是打印完毕的结束符,默认是换行符,可修改进而实现同行多输出等小功能。

简单例程:

#x=5
#y='a'
#z='asd'
#print(x,y,z,sep='  ',end='...\n')
#import sys
#sys.stdout.write('hellow')

后面的两句话为了进一步了解print在stdout的一般性测试的。

分支和循环

1)if 、elif、else均注意后面有冒号!

(elif和if是并列的,不缩进)

scr=int(input('Please input your grade: '))
while not(0<=scr<=100) :
    scr=int(input('Input the right score!'))
if scr>90:
    print('A')
elif scr>80:
    print('B')
elif scr>60:
    print('C')
else:
    print('D')

2)循环结构

while 条件:

    循环体

(记住有冒号,区别于C/C++的括弧)

 

for <target> in <obkect>:

   <statement>

else:

    <statement>

py中的for循环十分强大,很6的,可以理解为:for循环运行时,是将obj中的元素逐个得赋值到tar中,然后每个元素都执行一遍循环体,该过程就是一种遍历,应用十分广泛,如果加上else模块,就是遍历结束之后没有碰到break语句自动执行。

 

range()函数

常与for循环共同使用,其原型为:range([,start],stop,[,step=1])

其中[ ]括起来的参数表示可选,start默认值为0,step步长的默认值是1,则range()的功能是生成一个从start到stop参数步长为step的数字序列。

(注意:生成的序列包括start,但是不包括stop !)

 

break和continue:

和c类似,一个是跳出循环,一个是跳出本次循环。

3)else语句

可以和while或者for语句配合使用。

 

数据类型关系

1)数据类型转换

int()

float()

str()

三种函数的直接转换极其方便(在可转换的情况下)

注意:变量命名尽量不要使用上述函数名,python不会警报,但是会进行变量更新进而逻辑出错,如下图:

由于已经给str赋值为字符串了,再调用该函数他会优先认为str是一个变量不是函数而报错。

2)数据类型判定

type(var):返回变量类型

isinstance(var,dst_type):返回布尔量

3)补充一些运算符:

python3中的除法得到的是精确结果,不会自动取整;但是玩家可以自行选择地板除法(floor),用双斜杠进行除法,得到整数,(实际的floor除法含义是——向下舍入,而不是单纯的截断,对于负数尤为重要)如图:

                                                

**: 表示幂,如3**2输出为9

%:取余

运算符的优先级:

几个数据类型

1)数字

python的整型数字没有长度限制;

比较操作符的连续使用(X<Y<Z);

2)字符串

字符串具有不可变性,一旦创建不可修改;

字符串的操作:http://www.runoob.com/python/python-strings.html

字符串格式化:和C语言中的类似,但是注意,不加逗号用空格。可以理解为,将后面的变量按照前面的字符表达式形式输出。

3)列表

列表可以为混合数据类型;

列表具有有序性,可索引,可嵌套(实现矩阵);

列表长度可变,如向列表中添加元素append、extend、insert,删除元素用del、remove、pop等。

<注:查看属性和方法,可用dir()+help()组合大法>

列表创建list();

如下操作:

(py的索引都是左闭右开)ccccc 

4)元组

可以理解为不能修改的列表,其构成特点是圆括弧和逗号;

元组同样可以有复杂的嵌套方式;

元组创建和转化tuple()。创建单元素元组时(1,)形式;

5)字典

字典是一种映射类型,具有无序性,元素以键值对的形式存在;

索引类似于元组和列表,仍是用[ ];

 

字典的创建({}、dict(maping)):

注意括号的个数!dict()只传递一个参数,因此需要将元素括起来。创建方式多样,略。

字典的其他操作:

查看元素:in / not in + [键]

修改、删除

6)集合

用花括号表示,如set={1,2,4}.集合的元素是唯一的,无序的,不可索引;

可使用set()创建集合

 

函数

类似C/C++的部分较多,不赘述;

需要注意的地方:收集参数机制和关键字参数。参见:http://www.cnblogs.com/way_testlife/archive/2011/03/31/2001646.html

如下:

python的函数有一个很有趣的机制:不能通过函数修改全局变量!当函数试图修改全局变量时,会创造一个该变量的拷贝进行操作,而全局变量不变,避免了参数的混乱。如下:

关键字global:可以将函数内部的局部变量变为全局。(eg:global sum);

函数可内嵌,闭包;

lambda表达式创建匿名函数:(顾名思义,可以不用定义函数名,简化代码)

其他内建函数BIF:http://www.runoob.com/python/python-built-in-functions.html

递归:

阶乘实现:

汉诺塔游戏攻略:

 

文件

类似C/C++;

文件系统;

数据的永久储存:pickle库(序列化和反序列化):https://blog.csdn.net/coffee_cream/article/details/51754484

 

异常处理

异常类型:http://www.runoob.com/python/python-exceptions.html

try+except 语句处理和响应异常;with语句

raise引发异常;

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/mingqi1996/article/details/81210099