< 笔记 > Python

来源:互联网 发布:金博宝芝林软件破解版 编辑:程序博客网 时间:2024/06/06 00:18

02 Python 基础

By Kevin Song

  • 02-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''')line1line2line3

编辑器

print('''line1line2line3''')

布尔值

  • Ture
  • False

布尔值运算符

  • and
  • or
  • not
>>> True and TrueTrue>>> True and FalseFalse>>> False and FalseFalse>>> 5 > 3 and 3 > 1True

空值

空值是Python里一个特殊的值,用None表示

变量

动态语言 Python

a = 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变为以字节为单位的bytes

bytes类型的数据用带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 = 20if age >= 18:    print('your age is', age)    print('adult')

if else 语句

age = 3if age >= 18:    print('your age is', age)    print('adult')else:    print('your age is', age)    print('teenager')

elif 语句

其实就是else if

age = 3if 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 = 0for x in range(101):    sum = sum + xprint(sum)

while 循环

计算100以内所有奇数之和

sum = 0n = 99while n > 0:    sum = sum + n    n = n - 2print(sum)

02-06 dict和set

dict

使用键值对存储数据

>>> d = {'Kevin': 95, 'Cyborg': 75, 'Flash': 85}>>> d['Kevin']95

判断是否存在

>>> 'Superman' in dFalse

获取删除

>>> 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'
原创粉丝点击