number
string
")和单引号(')没有区别。只不过单引号中的双引号不需要转义,反之亦然。r''表示,内部的字符串不用转义。'''...''')的格式可以表示多行的内容而不同显式的插入换行符\nord('o'), chr(23566)b前缀来表示:x = b'ABC'。type(x) => <class 'bytes'>, len(x)=3str.encode('charset')=>bytes; bytes.decode('charset')=>strstr和bytes时的方法:计算str的字符数,计算bytes的字节数。'%05d-%s' %(3, "hello")a = []; b = list()a = (); a = tuple()a = (10,); a = tuple([10])a = ('a', 'b', ['A', 'B'])a = set()a = set([10, 14])a = [1, 2, 3, 2, 4, 6, 2]; b = set(a); a = list(b)a = {}; a = dict()d[key]去获得value时,如果key不存在那么将会报错。in语法判断key是不是存在d.get(key)方法,该方法还可以指定default值d.get(key, defvalue)| 速度 | 内存 | |
|---|---|---|
| list | 查找和插入的时间随着元素的增加而增加 | 占用空间小,内存浪费少 |
| dict | 查找和插入的速度极快,不会随着key的增加而变慢 | 占用大量的内存,内存浪费多 |
/ 10 / 3 = 3.3333333333333335// 10 // 3 = 3- for...in...else和while...else中的else语句会在for/while正常执行完毕之后调用。如果循环由于break语句而跳出,那么else语句将不会执行。
def关键字return语句,函数返回的是Nonereturn None,可以简写为returnpass作为占位符。pass还可以用到其他的语句中*实现,这样在调用的时候就可以一个一个的传入参数。如果传入的是list/tuple那么需要使用*来解包,但是内部还是将所有的参数自动组装成为一个tuple**实现,这样在调用的时候就可以传入任意多的含参数名的参数。在内部这些参数名和参数组成dict*,*之后的参数被命名为关键字参数:def person(name, age, *, city, job)*了:def person(name, age, *arg, city, job)
In [52]:
##测试几种变量的类型
a, b, c, d, e = 1, 2.3, True, 4+5j, 10000000000000000000000000000000000000000000000
print(type(a), type(b), type(c), type(d), type(e))
f = 'Hello, Python!'
g = True
print(type(f), type(g))
h, i, j = [], set(), {}
print(type(h), type(i), type(j))
#所有的这些都是类(class)
In [53]:
10/3, 10//3, 10 % 3
Out[53]:
In [54]:
ord('o'), chr(23566)
Out[54]:
In [55]:
x = b'ABC'
print(type(x))
print(len(x))
In [56]:
print('中文'.encode('utf-8'))
len('中文'.encode('utf-8'))
Out[56]:
In [57]:
'%05d-%s' %(3, "hello")
Out[57]:
In [34]:
a = list()
a = tuple('a')
a = tuple(10)
In [37]:
a = set([10])
print(type(a))
print(a)
In [48]:
a = [1, 2, 3, 2, 4, 6, 2]
b = set(a)
a = list(b)
print(a)
print(b)
c = set([2, 3, 4, 5])
print(c)
print(b - c)
print(b | c)
In [60]:
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi/6)
print('x = %f, y = %f' %(x, y))
In [3]:
def add_end(L = []):
L.append("END")
return L
print(add_end())
print(add_end())
#这里L要使用不可变对象
def add_end(L = None):
if L is None:
L = []
L.append('END')
return L
print(add_end())
print(add_end())
In [7]:
def calc(numbers):
sum = 0
for num in numbers:
sum = sum + num
return sum
print(calc([1, 2, 4, 5, 6]))
def calc(*numbers):
sum = 0
print(type(numbers))
for num in numbers:
sum = sum + num
return sum
print(calc(1, 2, 3, 4, 5))
print(calc(*[1, 2, 3, 4, 5]))
print(calc([1, 2, 3, 4, 5]))
In [62]:
def person(name, age, **kw):
print('name: ', name, "age: ", age, "others: ", kw)
person('Longshan', 30, city='Beijing')
In [ ]: