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)不可变对象:
对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的
编译器或者解释器就是负责把符合语法的程序代码转换成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)不可变对象:
对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的
相关文章推荐
- Python基础(一)
- Python os.walk文件遍历
- python 同一个float值,id不同
- ipython常用方法说明
- pySerial -- Python的串口通讯模块
- python MySQLdb简单封装
- python - 类的方法
- python_day7学习笔记
- ipython notebook 远程访问
- python生成简单的验证码
- python - 类的字段
- python学习之路-8 面向对象之进阶
- Flask: Ajax 设置Access-Control-Allow-Origin实现跨域访问;Ajax页面底部自动加载
- 获取string中的最长回文字符串
- Python学习-数据运算
- Python入门:selenium之修改cookie
- Python入门:selenium之登录(二)
- leetcode之Dungeon Game
- 安装Macvim
- 双端队列(Deque)的python实现及应用