============================================================================
==== 注该文档源于个人在学习廖雪峰老师的Python教程时候的随笔,参考网址:
==== https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/
==== 其中有少量引用原句,并未标明,若侵权,将致歉删除。
==== 本文属于学习笔记,如果理解不正确之处,还望海涵,多请指教
=============================================================================
1. 运行Python脚本方法
Linux或者Mac环境下如何直接运行py文件
有同学问,能不能像.exe文件那样直接运行.py文件呢?在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py文件的第一行加上一个特殊的注释:
#!/usr/bin/env python3
print('hello, world')
然后,通过命令给hello.py以执行权限:
$ chmod a+x hello.py
2. list 和 tuple
list声明使用方括号,如: lst = ['aa','ss','dd','ff']
list是可变数组,有append, insert等方法
其中: append方法将包括的元素增加到list后方
lst.append('gg')
lst = aa,ss,dd,ff,gg
insert方法的第一个参数是将元素插入的索引位置,如:
lst.insert(1,'bb')
lst = aa,bb,ss,dd,ff,gg
pop方法是将lst最后的n个元素弹出,并返回该元素
lst.pop(1)
lst = lst = aa,bb,ss,dd,ff
tuple是不可变数组,使用圆括号声明,如:tpl =('zz','xx','cc')
tuple没有append,insert等改变数组大小的方法
二者通用方法:
len(lst)方法返回list的长度
索引下标均可以从[-len,len-1]进行索引,其中负值指的是逆序索引
list和tuple都可以嵌套使用。所谓可变tuple即是tuple中嵌套list。
tuple是在声明的时候即定下长度,成为元组,不可变意味着数据使用安全。所以在声明的时候:
如果是空的tuple,即声明为
tpl = ()
但是声明成长度为1的元组,须如下添加逗号(,),以表示和数值1来消除歧义。
tpl = (1,)
3. 判断条件:
示例:
age = 10
if age > 18:
print('adult')
print('your age is ',age)
elif age > 10
print('teenager')
else
print('child')
print('your age is ',age)
从上示例可以看出,
1. 和C/C++的区别,if后面不使用括号,条件结束后用冒号(:)来提示
2. 不适用{}来包裹代码,而是使用缩进来控制条件满足的语句
3. else if ===> elif
4. input函数
input()函数返回值是string类型,故而,使用input()函数时候注意格式转换。
如:
str = input('Input your birth:')
birth = int(str)
if birth > 2000
print('00后')
else
print('00前')
5. 循环
Python有两种循环 :
1. for … in … :
2. while …
5.1 for...in...
常用语遍历list或者tuple的所有元素
如:
>>>names =['zz','xx','cc','vv','bb']
>>>for name in names:
... print(name)
...
注意事项:注意for...in...后面的冒号(:),注意循环体的缩进
range()函数,传入参数为n,表示生成从0到n-1的整数。常和list或者tuple配合使用生成大范围数组或者元组。
如:
range(101)生成0-100的整数
5.2 while循环
同样注意两点:while语句后面加冒号(:),循环体缩进。
break语句用于提前打断循环,用法单句使用,后面不加符号
continue语句用于退出当前循环,进入下一轮循环,用法和break同
在使用break和continue时候往往配合使用if语句,满足一定的条件才会去做打断循环的指令
6. dict和set
6.1 dict
dict字面意思指的是字典(dictionary),所表示的对象和C++中的map类似,结构类型是(key-value)方式存储,是通过键值来进行查找的结构,具有极快的查找速度。
dict数据声明方式使用{}来标示,构造dict时候key和value一一对应,如:
>>>d = {‘mm’:95,‘bb’:99,‘kk’:98,‘qq’:96}
键值和数值之间用冒号(:)隔开,每一对key-value之间用逗号(,)隔开。
访问方式,如:
>>>d[‘qq’]
返回key qq对应的value:96.
修改dict,可以通过直接赋值的方式修改某项的值,如:
>>>d['qq'] = 100
由于dict是一对一的数据结构,所以赋值以后先前的值就会被冲掉。如果key值不存在就会报错。
判断dict中是否有某key,有两种方式:
1.可用in语句判断,如:
>>>‘ww’ in d
如果ww是d中的某一项,则返回True,否则返回False。
2.采用get()方法,用法如下:
>>>d.get('ww')
>>>d.get('ww',-1)
-1
注意:返回null的时候,Python命令行并不会显示结果。
pop()方法用于删除dict中的元素
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
1. 查找和插入的速度极快,不会随着key的增加而变慢;
2. 需要占用大量的内存,内存浪费多。
而list相反:
1. 查找和插入的时间随着元素的增加而增加;
2. 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
请注意:dict的key必须是不可变对象。
通过key计算位置的算法成为哈希算法。
6.2 Set
set和dict一样是key的集合,但是不存储value。set中没有重复的key.
set创建方法,如:
>>>s = set([1,2,3])
重复的key将会自动被过滤,可以通过add()方法增加key,可以加重复的,但是并没有效果。
如:
>>>s.add(4) #增加一个key
>>>s.add(3) #无效果
删除元素使用remove()方法,如:
>>>s.remove(3)
set可以看作是数学中的集合,可以用于计算交并补集
交集使用&,并集使用|,如:
>>>s1&s2
>>>s1|s2
6.3 不可变对象
str是不可变对象,list是可变对象。这里指的是数据对象的长度不可变,顺序不可变。
对于可变对象如list,对list进行操作,内部会发生变化,如排序等操作。
>>>a = 'qwert'
>>>a.replace('q','Q')
Qwert
>>>a
qwert
上述过程可以看出,虽然使用replace方法实现了字符串的临时变化,但是变量a最后还是没有变。可以这样理解,a是变量,’qwert'才是字符串对象,在调用replace()方法时候,确实创建了一个新的字符串‘Qwert',但是并没有改变a指向的字符串本身。
7. 注释
python的单行注释使用井号(#)
python的多行注释使用成对的三单引号(‘’‘’‘’)或者三双引号(“”“”“”)
如:
'''
这是注释1
这是注释2
这是注释3
'''
“””
这是注释1
这是注释2
这是注释3
“””