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

Python基础(二)

2016-06-26 12:13 239 查看
1、Python基础:

编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行

Python程序是大小写敏感的,如果写错了大小写,程序会报错

1. 数据类型和变量:

1)数据类型:

a. 整数 永远是精确的且没有大小限制

/ :结果为浮点数

// : 结果为整数

% : 结果是余数

b. 浮点数 可能会有四舍五入的误差且没有大小限制,但是超出一定范围就直接表示为inf(无限大)

c. 字符串

a) 字符串是以单引号'或双引号"括起来的任意文本

b) ':直接在""中使用即可

c) 如果字符串既包含',也包含",就需要使用转义字符\

d) 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义

e) 如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容;在交互式命令行中在输入多行内容时,提示符由>>>变为...;多行字符串'''...'''还可以在前面加上r使用

d. 布尔值

True False

e. 空值

空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的空值

......

2)变量:

变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头

在Python中,=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量(这种变量本身类型不固定的语言称之为动态语言)

3)常量:

在Python中,通常用全部大写的变量名表示常量

2. 字符串和编码:

1)字符编码:

a. ASCII编码和Unicode编码的区别:

a) ASCII编码是1个字节,而Unicode编码通常是2个字节

b. 本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码

c. UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间

d. 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码

2) Python字符串:

a. 在最新的Python3版本中,字符串是以Unicode编码的,也就是说Python的字符串支持多语言

b. 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

c. 由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节.如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes

Python对bytes类型的数据用带b前缀的单引号或双引号表示 x = b'ABC'

d. 以Unicode表示的str通过encode()方法可以编码为指定的bytes

e. 纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes,含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错

f. 在bytes中,无法显示为ASCII字符的字节,用\x##显示

g. 如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法

h. len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数;1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节

i. 在操作字符串时,我们经常遇到str和bytes的互相转换。为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换

3) 格式化:

a. 跟C一致

b. 占位符:

%d 整数 %f
浮点数 %s 字符串 %x
十六进制整数

c. 格式化整数和浮点数还可以指定是否补0和整数与小数的位数

d. %%

3. 使用list和tuple:

1)list:[]

a)python内置的一种数据类型:list.list是一种有序的集合,可以随时添加append和删除其中的元素

b)通过索引访问list中的元素,最后一个元素的索引是len(list)-1; 如果要取最后一个元素可以直接使用-1

c)list是一个可变的有序表,可以向list中追加元素到末尾,也可以插入元素到指定索引位置:insert(index,data)

d)删除list末尾的元素,使用pop()方法,删除指定位置的元素:pop(i)

e)替换某个位置元素的值,直接赋值给对应的索引位置

f)list里的元素的数据类型也可以不同,元素也可以是list

2)tuple:()

a)元组也是有序列表,与list类似,但是tuple初始化之后就不能改变

b)tuple不可变,所以更安全

c)只有一个元素的tuple定义时,必须加一个","

4. 条件判断:

1)语法:

if <condition1>:

<exec1>

elif <condition2>:

<exec2>

elif <confition3>:

<execcx3>

else:

<exec4>

2)if简写:

if x: // 只要x非零数值、非空字符串、非空list,就是True

<exec>

5. 循环

1)for...in循环

a)for x in ... : // 把每个元素带入x

b)range(num)函数:生成一个整数序列(从0开始小于num),再通过list()转换成list

2)while循环

只要条件满足就不断循环,直到条件不满足,退出循环

6. 使用dict和set

1)dict {}

a)python内置了字典(map),使用key-value存储,查找速度极快

b)key值不能重复,插入key如果不存在,就会报错

使用in判断key是否存在

通过dict的get(),如果key不存在,可以返回None,或者自己指定的value

dict(key) dict(key,value)

c)删除键使用pop(key)

d)dict的key是不可变对象,如:整数、字符串等.

2)set

1)set和dict类似,也是一组key的集合,但不存储value.没有重复的key.

2)创建:

创建set,需要使用list作为输入集合,s=set(["",""])

3)添加:

add(key)

4)删除:

remove(key)

5)set的key是不可变对象,如:整数、字符串等.

3)不可变对象:

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: