Python基本数据类型
一、几个概念
1.表达式
- 表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合
- 表达式特点
- 表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响
- 如果在交互模式中输如一个表达式,解释器会自动将表达式的结果输出
2.语句
- 一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成
- 语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果
3.程序(program)
- 程序就是由一条一条的语句和一条一条的表达式构成的。
4.函数(function)
- 函数就是一种语句,函数专门用来完成特定的功能
- 函数的形如:xxx()
- 函数的分类:
- 内置函数 : 或者内建函数,就是由语法规定存在的函数,这些函数,包含在编译器的运行时库中,程序员不单独书写代码实现它,只需要调用既可。
- 自定义函数 : 由程序员自主的创建的函数 当我们需要完成某个功能
时,就可以去调用内置函数,或者自定义函数
- 函数的2个要素
- 参数
- 返回值
二、标识符
1. 关键字
- python一些具有特殊功能的标识符,这就是所谓的关键字,关键字是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符
2. 标识符概念
- 开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名、函数名等
- 组成:由26个英文字母大小写,数字 0-9 符号 _$
- 标识符的规则:
- 1.标识符中可以包含字母、数字、_下划线,但是不能使用数字开头 例如:name1 name_1 _name1 1name(不行)
- 2.Python中不能使用关键字和保留字来作为标识符
- 命名方式
- 驼峰命名法
- 小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的字字母大写,例如:myName、aDog
- 大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:
FirstName、LastName
- 下划线命名法
- 不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如 get_url buffer_size
- 驼峰命名法
三、基本数据类型
- 数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值
1.整数(int)和小数/浮点数(float)
- 整数 : 所有整数 例如 : a = 1 b = 100 c =999 都是int类型
- 小数常量 : 所有小数,又称浮点数 例如 a = 1.2 b=6.66 用float类型表示
2.布尔值和空值
- 布尔值: 只有2个值一个是True 一个是False
- None常量:只有一个数值就是None 也就是空值
四、变量
1. 变量的概念?
- 变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字。
- 变量命名规则:
- 变量名由字母、数字、下划线组成要符合标识符的命名规范
- 数字不能开头
- 不能使用关键字
- 注意 : 是两个对象相等和两个对象是同一个对象是两个概念
1 s1 = {'Jerry':'Python'}
2 import copy
3 s2 = copy.deepcopy(s1)
4 print(s2) # {'Jerry': 'Python'}
5
6 print(id(s1),id(s2))
7 print(s1==s2)
2. 变量的运算
- 变量的运算就是正常的四则运算 ,需要注意的是在运算过程中含有浮点数,那么它返回的就是一个浮点数类型
五、字符串
1. 什么是字符串
- 字符串是由数字、字母、下划线组成的一串字符
- 注意
- 单引号和双引号不能混合使用
- Python中用一对双引号或者一对单引号包裹的内容就是字符串
2. 转义字符
- 转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符
- 总结
- \t 表示制表符
- \n 表示换行符
- \ 表示反斜杠
- ’ 表示 ’
- \ ‘’ 表示 ‘’
3. 长字符串
- 长字符串 又叫做问档字符串 我们使用三重引号来表示一个长字符串’’’ ‘’’
- 三重引号可以换行,并且会保留字符串中的格式
4. 格式化字符串
- 第一种格式化字符串 拼串
- 第二种格式化字符串 参数传递
- 第三种格式化字符串 占位符
- %s 字符串占位
- %f 浮点数占位
- %d 整数占位
- 第四种格式化字符串 f’{变量}’/ str.format
5. 字符串的其他操作
- len() 字符串的长度
- max() 最大值
- min() 最小值
- split() 分割字符串
- s.rsplit() 反向分割
- s.splitlines() 以\r \n来切割
- s.partition(sep) 分三段返回元组
- s.rpartition(sep) 反向分三段返回元组
- join()拼接字符串
- 去空格
- s.strip() 左右两边去空格
- s.lstrip() 去左边空格
- s.rstrip() 去右边空格
- 字符串大小写
- s.upper() 全部大写
- s.lower() 全部小写
- s.isupper() 判断是不是大写
- s.islower() 判断是不是小写
6.字符串的修改
replace(old,new【count】)–> str
- 字符串中找到匹配的字符串,生成新的字符串
- count表示替换几次,不指定就是全部替换
'www.baidu.com'.replace('w','p')====>'ppp.baidu.com'
'www.baidu.com'.replace('w','p',2)====>'ppw.baidu.com'
'www.baidu.com'.replace('www','python',2)====>'python.baidu.com'
strip([chars]) --> str
- 从字符串两端去除指定的字符集chars中的所有字符
- 如果chars没有指定,去除两端的空白字符
s = "\r \t \n Hello World \n \r \t"
print(s.strip()) ===>" Hello World"
a = " Hello World"
print(a.strip('H d')) ===>"ello Worl"
lstrip([chars]) --> str
- 从左开始
a = " Hello World"
print(a.lstrip('H d')) ===>"ello World"
rstrip([chars]) --> str
- 从右开始
a = " Hello World"
print(a.rstrip('H d')) ===>" Hello Worl"
7.字符串查找
find(sub[,start[,end]]) --> int
- 在指定的区间[start,end]从左至右,查找子串sub,找到返回索引,没找到返回-1
rfind(sub[,start[,end]]) --> int
- 在指定的区间[start,end]从右至左,查找子串sub,找到返回索引,没找到返回-1
index(sub[,start[,end]]) --> int
- 在指定的区间[start,end]从左至右,查找子串sub,找到返回索引,没找到返回-1,没找到抛出异常ValueError
rindex(sub[,start[,end]]) --> int
- 在指定的区间[start,end]从右至左,查找子串sub,找到返回索引,没找到返回-1,没找到抛出异常ValueError
count(sub[,start[,end]]) --> int
- 在指定的区间[start,end]从左至右,统计子串sub出现的次数
8.字符串判断
endswith(suffix[,start[,end]]) -->bool
- 在指定的区间[start,end],字符串是否以suffix结尾
startswith(prefix[,start[,end]]) -->bool
- 在指定的区间[start,end],字符串是否以prefix开头
9.字符串的判断 is系列返回bool
- a.isalnum() 是否字母和数字组成
- a.isalpha() 是否是字母(偶尔会用)
- a.isdecimal() 是否只包含十进制
- a.isdigit() 是否全部数字(0-9)
- a.isidentifier() 是不是字母和下划线开头,其他都是字母、数字、下划线(偶尔会用)
- a.islower() 是否全部小写
- a.isupper() 是否都是大写
- a.isspace() 是否只包含空白字符