您的位置:首页 > 编程语言 > Python开发

< 笔记 > Python - 02 Python 基础

2017-10-02 18:13 405 查看

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''')
line1
line2
line3


编辑器

print('''line1
line2
line3''')


布尔值

Ture

False

布尔值运算符

and

or

not

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>>
4000
5 > 3 and 3 > 1
True


空值

空值是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 = 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 if

age = 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'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: