< 笔记 > Python - 02 Python 基础
2017-10-02 18:13
405 查看
02 Python 基础
By Kevin Song02-01 数据类型和变量
02-02 字符串和编码
02-03 list和tuple
02-04 判断语句
02-05 循环语句
02-06 dict和set
02-01 数据类型和变量
数据类型
整数浮点数
字符串
布尔值
空值
整数
Python可已处理任意大小的整数浮点数
按照科学记数法表示时,小数点位置可变:1.23x10^9 = 12.3x10^8对于很大或者很小的浮点数采用科学记数法:1.23x10^9 = 1.23e9
字符串
单引号 ’ ‘ 或双引号 ” “ 括起来的任意文本:’abc’,”xyz”如果 ’ ‘ 本身也是一个字符,那就可以用 ” “ 括起来
a = "I'm OK"
输出:I’m OK
如果字符串内部既包含 ’ ‘ 又包含 ” “ ,用转义字符\来标识
a = 'I\'m \"OK\"!'
输出:I’m “OK”!
转义字符
r” : ’ ‘ 内部字符串默认不转义
>>> print(r'\\\t\\') \\\t\\
”’…”’ : 表示多行内容
交互式
>>> print('''line1 ... line2 ... line3''') line1 line2 line3
编辑器
print('''line1 line2 line3''')
布尔值
TureFalse
布尔值运算符
and
or
not
>>> True and True True >>> True and False False >>> False and False False >>> 4000 5 > 3 and 3 > 1 True
空值
空值是Python里一个特殊的值,用None表示变量
动态语言 Pythona = 123 # a是整数 print(a) a = 'ABC' # a变为字符串 print(a)
动态语言 Java
int a = 123; // a是整数类型变量 a = "ABC"; // 错误:不能把字符串赋给整型变量
02-02 字符串和编码
字符串 转 整数 :ord()>>> ord('A') 65 >>> ord('中') 20013
整数 转 字符串 :chr()
>>> chr(66) 'B' >>> chr(25991) '文'
bytes类型
把str变为以字节为单位的bytesbytes类型的数据用带b前缀的单引号或双引号表示:
x = b'ABC'
‘ABC’ 和 b’ABC’,前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。
encode()
以Unicode表示的str编码为bytes,通过encode()方法>>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' >>> '中文'.encode('ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
decode()
bytes解码为str,通过decode()方法>>> b'ABC'.decode('ascii') 'ABC' >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
len()
计算的是str的字符数计算的是bytes的字节数
>>> len('ABC') 3 >>> len('中文') 2 >>> len(b'ABC') 3 >>> len('中文'.encode('utf-8')) 6
格式化
常见占位符- %d 整数
- %f 浮点数
- %s 字符串
- %x 十六进制整数
>>> 'Hi, %s, you have %d RMB.' % ('Kevin', 1000000) 'Hi, Kevin, you have 1000000 RMB.'
>>> 'growth rate: %d %%' % 7 'growth rate: 7 %'
02-03 list和tuple
list
Python内置的一种数据类型是列表:list>>> justice = ['Kevin', 'Cyborg', 'Flash'] >>> justice ['Kevin', 'Cyborg', 'Flash']
获取长度
>>> len(justice) 3
常用函数:
- cmp(list1, list2):比较两个列表的元素
- len(list):列表元素个数
- max(list):返回列表元素最大值
- min(list):返回列表元素最小值
- list(seq):将元组转换为列表
常用方法:
list.append(obj):在列表末尾添加新的对象
list.count(obj):统计某个元素在列表中出现的次数
list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj):从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj):将对象插入列表
list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj):移除列表中某个值的第一个匹配项
list.reverse():反向列表中元素
list.sort([func]):对原列表进行排序
查改
>>> justice[0] 'Kevin' >>> justice[-1] 'Flash' >>> justice[2] = 'Superman'
list元素的数据类型可以不同
>>> L = ['Apple', 123, True]
list元素也可以是另一个list
>>> s = ['python', 'java', ['asp', 'php'], 'javascript'] >>> len(s) 4
tuple
元组:tuple一旦初始化就不能修改>>> justice = ('Kevin', 'Cyborg', 'Flash')
没有append(),insert()这样的方法。其他获取元素的方法和list一样
定义只有一个元素的tuple,加一个逗号
>>> t = (1,) >>> t (1,)
tuple里的list可变
>>> t = ('a', 'b', ['A', 'B']) >>> t[2][0] = 'X' >>> t[2][1] = 'Y' >>> t ('a', 'b', ['X', 'Y'])
02-04 判断语句
if 语句
如果if语句判断是True,就执行缩进的两行print语句否则,什么也不做
age = 20 if age >= 18: print('your age is', age) print('adult')
if else 语句
age = 3 if age >= 18: print('your age is', age) print('adult') else: print('your age is', age) print('teenager')
elif 语句
其实就是else ifage = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
例
s = input('birth: ') birth = int(s) if birth < 2000: print('00前') else: print('00后')
02-05 循环语句
for in 循环while 循环
for in 循环
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
range()函数生成整数序列
sum = 0 for x in range(101): sum = sum + x print(sum)
while 循环
计算100以内所有奇数之和sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
02-06 dict和set
dict
使用键值对存储数据>>> d = {'Kevin': 95, 'Cyborg': 75, 'Flash': 85} >>> d['Kevin'] 95
判断是否存在
>>> 'Superman' in d False
获取删除
>>> d.get('Superman') >>> d.get('Superman', -1) -1 >>> d.pop('Cyborg') 75
dict
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
list
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法
注意: dict的key必须是不可变对象(str,int)
set
没有重复的key没有value
需要提供一个list作为输入集合
>>> s = set([1, 1, 2, 2, 3, 3]) >>> s {1, 2, 3}
常用方法
add() 可以重复添加,但不会有效果
remove(key) 删除
两个set取交集并集
>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4}
不可变对象
可变对象:list>>> a = ['c', 'b', 'a'] >>> a.sort() >>> a ['a', 'b', 'c']
不可变对象:很多
比如:str
>>> a = 'abc' >>> a.replace('a', 'A') 'Abc' >>> a 'abc'
相关文章推荐
- python基础学习笔记<进阶>
- <<Python基础教程>>学习笔记 | 第03章 | 字符串
- python基础学习笔记<内建模块与第三方模块>
- <<Python基础教程>>学习笔记 | 第13章 | 数据库支持
- <<Python基础教程>>学习笔记 | 第06章 | 抽象
- python基础学习笔记<面向对象编程>
- <<Python基础课程>>学习笔记 | 文章13章 | 数据库支持
- python基础学习笔记<数据库>
- <<Python基础教程>>学习笔记 | 第11章 | 文件和素材
- <<Python基础教程>>学习笔记 | 第09章 | 魔法方法、属性和迭代器
- <<Python基础教程>>学习笔记 | 第14章 | 网络编程
- <<Python基础教程>>学习笔记 | 第07章 | 更加抽象
- <<Python基础教程>>学习笔记 | 第04章 | 字典
- <<Python基础教程>>学习笔记 | 第08章 | 异常
- python基础学习笔记<Web开发>
- <<Python基础教程>>学习笔记 | 第02章 | 列表和数组
- <<Python基础教程>>学习笔记 | 第12章 | 图形用户界面
- <<Python基础教程>>学习笔记 | 第14章 | 网络编程
- python基础学习笔记<内建模块与第三方模块>
- <<Python基础教程>>学习笔记 | 第05章 | 条件、循环和其他语句