1、字符串前r的用法
以r或R开头的python中的字符串表示(非转义的)原始字符串
2、字符串前u的用法
在python2.x里面,u表示unicode string,类型是unicode,没有u表示byte string,类型是str
在python3.x里面,所有字符串都是unicode string,u前缀没有特殊含义
r和u可以搭配使用,例如ur“abc”
3、编码注释
如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,目的是告诉Python解释器,用UTF-8编码读取源代码,否则python2会默认使用ASCII编码
# -*- coding:utf-8 -*-
4、List和Tuple类型
list和tuple是Python内置的有序集合,一个可变,一个不可变
list是一种有序的集合,可以随时添加和删除其中的元素。
# -*- coding:utf-8 -*-
#1、声明list
s=["liwb","qnn"]
#2、访问第一个元素
s[0]
#3、访问倒数第一个元素
s[-1]
#4、在最后一个元素后添加一个元素
s.append("liyc")
#5、在索引1处插入值
s.insert(1,"liss")
#6、删除最后一个元素
s.pop()
#7、删除索引为1的元素
s.pop(1)
#8、重新给某索引处赋值
s[1]="lyc"
#9、查看list中元素个数
len(s)
tuple是一种有序的集合,不可变。
#1、声明
s=("liwb","qnn","liyc")
#2、取得第一个元素
s[0]
#3、取得倒数第一 个元素
s[-1]
注意:
1、与list相比使用方法一致,不可以添加元素
2、定义只有一个元素时
s=(1,)
3、tuple内可以有list
s=(1,2,["ad","cccc"])
5、dict和set类型
dict:字典,以key-value 形式存储,创建方式用大括号{},并用冒号分隔键、值用空间换取时间,占据空间大,但查询速度快,键值对(key:value),key唯一
#创建dict
d={"chen":60,"zhang":80}
print(d)
#赋值操作
d['chen']=65
print(d)
#取值:get()方法,可以为其设置默认值。
print(d.get("liu",0))
#删除:可以用pop方法删除值,并将删除的元素返回。
d['liu']=85
print(d)
d.pop('liu')
print(d)
#keys()和values()方法分别返回字典的键和值集合,虽然键值对没有特定的顺序,但是这两个方法返回的结果顺序是一致的。
print(d.keys())
print(d.values())
#字典合并:使用update()方法可以两个字典进行合并。
d1={'a':100,'b':99}
d.update(d1)
print(d)
set:集合,set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
#创建set
s=set([1,2,3,4,5])
print s
#添加元素
s.add(6)
print s
#如果set里已存在该元素,再次添加不会有效果
s.add(6)
print s
#删除元素
s.remove(6)
print s
#集合交集
s1=set([3,5,7])
print s&s1
#集合并集
print s|s1
#两个集合的差
print s1-s
#两个集合的异或
print s^s1
#判断一个集合是否为另外一个集合的子集
print {1,3,5}.issubset(s)
#判断一个集合是否为另外一个集合的超集
print s.issuperset({1,5})
6、函数返回多值
python函数返回多值其实是一种假象,其实python函数返回的仍然是单一值(tuple)
在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋值给对应的值,所以python的函数返回多值其实是返回一个tuple
#比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的坐标:
import math
def move(x, y, step, angle):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
print(move(100, 100, 60, math.pi / 6))
7、函数的参数
python函数参数的定义主要有以下四种方式:
#最常见的定义方式
def a(x, y):
print x, y
#含有默认值的函数
def a(x,y=3):
print x, y
#参数加*表示这个函数的实参个数不定,可能为0也能为n个,参数接收的是一个tuple
def a(*args):
print args
#参数加**表示参数接收的是一个dict,调用函数时,需采用arg1=value1,arg2=value2这样的形式
def a(**kwargs):
print kwargs
可变参数既可以直接传入:func(1, 2, 3)
,又可以先组装list或tuple,再通过*args
传入:func(*(1, 2, 3))
;
关键字参数既可以直接传入:func(a=1, b=2)
,又可以先组装dict,再通过**kw
传入:func(**{'a': 1, 'b': 2})
。
使用*args
和**kw
是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。