【python】基础
基础
>>>print('you', 'bad', 'bad','你坏坏')
you bad bad 你坏坏
print()
会依次打印每个字符串,遇到逗号“,”会输出一个空格。
大小写敏感
#
开头是注释
当语句以冒号:
结尾时,缩进的语句视为代码块。
Python使用缩进来组织代码块,坚持使用4个空格的缩进。
在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。在sublime设置里 大括号内添加以下代码
"tab_size": 4,
"translate_tabs_to_spaces": true,
"expand_tabs_on_save": true,
-
十六进制 0xff00,0xa5b4c3d2
1.23x109 就是1.23e9 -
转义字符
Python还允许用r'' 表示 ''内部的字符串默认不转义print('\\\t\\')
-
Python允许用格式表示多行内容
命令行里:
>>> print('''line1
... line2
... line3''')
line1
line2
line3
程序里
print('''line1
line2
line3''')
-
/
除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数 -
ord()
函数获取字符的整数表示
chr()
函数把编码转换为对应的字符 - 如果知道字符的整数编码,还可以用十六进制这么写str:
>>> '\u4e2d\u6587'
'中文'
3.6可以显示,2.7显示不出来
- 让代码按UTF-8编码读取
- 在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
- 确使用UTF-8 without BOM编码储存文本
- 格式化
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%6.2f' % 3.1415926
' 3.14'
6.2f:6位包含小数点
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
-
list [] 和 tuple ()
classmates[-1]
就是倒数第一个
.append(i, )
在索引i插入元素
.pop(i)
删除索引i
多维列表:list元素也可以是另一个list
classmates=(1,2,3)
初始化后就不能被改咯
classmates=(1)
只有单元素会引起歧义,因为()也表示数学小括号。所以,只有1个元素的tuple定义时必须加一个逗号,
来消除歧义。 -
elif 是else if的缩写,而且还不能用else if
if x: 只要x是非零数值、非空字符串、非空list等,就是true -
input()返回的数据类型是str,str不能直接和整数比较,用int()函数可以把字符串数字转化为数字类型
-
循环
while
循环 和for x in ...
循环 两种, for循环就是把每个元素代入变量x,然后执行缩进块的语句。
break
跳出循环continue
提前结束本次循环,通常搭配if使用。要特别注意 不要滥用这俩,能改写循环条件和逻辑就不要用这俩
list(range(5))
[0, 1, 2, 3, 4] -
字典
- dic
d = {key1: value1,key2: value2}
d[key]
返回value
或者{set}[key] 就可以返回value
判断key存在与否:
key in d
返回false
d.get(key)
返回None的时候Python的交互式命令行不显示东西
d.get('Thomas', -1)
返回 -1
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
dict的key必须是不可变对象,比如list就不能作为key
和list比较,dict查找和插入的速度快,占内存。 - set
也是一组key的集合,但不存储value,key不重复
s = set([1, 2, 3])
输入s
返回{1, 2, 3}
添加key.add(key)
删除key.remove(key)
两个set可以做数学意义上的交集、并集等操作s1 & s2``s1|s2
- dic
List+Tuple+Dict+Set小结
对比 | 列表List | 元组Tuple | 字典Dict | 集合Set |
---|---|---|---|---|
创建 | L = ['Adam', 'Lisa', 'Bart', 'Gechong', 'Kongming'] | Tu = ('Adam', 'Lisa', 'Bart', 'Gechong', 'Kongming') | Di = {'Adam':100, 'Lisa':90, 'Bart':93, 'Gechong':100, 'Kongming':100} | s = set(['Adam', 'Lisa', 'Bart', 'Gechong', 'Kongming']) |
显示 | L[0] | Tu[0] | Di['Adam']和Di.get('Adam') | if 'Test' in s: print ('Test') else:print ('No') |
遍历 | print (L)和for循环 | print (Tu)和for循环 | print(Di)和for循环 | print(Set)和for循环 |
更新 | append()和insert()和直接赋值 | 不可以更新 | 对应位置赋值即可 | s.add() |
删除 | pop()和pop(n) | 不可以删除 | s.remove() | |
特点 | 有序,可以添加删除 | 指向的位置不可变 | 查找速度快、浪费空间、key不可以重复,且不可变(不能用list作key)、数据无序排放 | 像是把dict的key抽出来,两个set可以做数学意义上的交集、并集等操作 |