赋值
1.链式赋值
x=y=123
注意:变量x、y的地址是相同的。运行结果如下:
2. 系列解包赋值
a,b,c=1,2,3
应用:实现变量互换
c,d=4,6
c,d=d,c
而在C语言中,需要另外一个变量进行倒腾。
常量
Python不支持常量,我们只能约定常量的命名规则,以及在程序的逻辑上不对常量的值做出修改。
最基本内置数据类型
- 整型
也就是整数 - 浮点型
小数,3.14或314e-2/314E-2 - 布尔型
表示真假,仅包含:True、False - 字符串型
由字符组成序列
整
型
和
浮
点
型
其
实
就
是
数
字
,
那
么
接
下
来
,
我
们
将
上
述
四
个
类
型
划
分
为
大
类
进
行
介
绍
,
分
别
为
:
数
字
、
布
尔
型
、
字
符
串
\color{DarkTurquoise}{整型和浮点型其实就是数字,那么接下来,我们将上述四个类型划分为大类进行介绍,分别为:数字、布尔型、字符串}
整型和浮点型其实就是数字,那么接下来,我们将上述四个类型划分为大类进行介绍,分别为:数字、布尔型、字符串
数字
- 运算
运算符 | 说明 |
---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 浮点数除法 |
// | 整数除法 |
% | 模(取余) |
** | 幂 |
下面用一个简单的例子来演示操作:
注:0不可以做除数
- 整数
一共有四种进制,分别为:二进制(0b/0B)、八进制(0o/0O)、十进制和十六进制(0x/0X)。
注:整数和浮点数混合运算时,表达式结果自动转型成浮点数。 - 整数缓存问题
Python仅仅对比较小的整数对象进行缓存(范围为[-5,256]),而并非所有整数对象;而在Pytharm中,范围为[-5,任意整数]。举个例子,对于下述代码:在Python中,两者的地址不一样;而在Pytharm中,两者的地址是一样的。(通过id()可以验证)
a=257
b=257
- 类型转换与四舍五入
函数 | 含义 | 备注 |
---|
float() | 其他类型转换成浮点数 | |
round() | 四舍五入 | 不会改变原有值,而是产生了新值 |
int() | 保留整数部分 | |
- 增强型赋值运算符
运算符 | 例子 | 等价 |
---|
+= | a+=2 | a=a+2 |
-= | a-=2 | a=a-2 |
*= | a*=2 | a=a*2 |
/= | a/=2 | a=a/2 |
//= | a//=2 | a=a//2 |
**= | a**=2 | a=a**2 |
%= | a%=2 | a=a%2 |
- 时间表示
函数 | 含义 | 备注 |
---|
time.time() | 获得当前时刻 | 从1970年1月1日00:00:00开始计时,单位为秒 |
下面以获取当前时间为例,进行操作说明:
import time
time.time()
布尔值
- 比较运算符的使用
运算符 | 描述 |
---|
== | 等于-比较对象的值是否相等 |
!= | 不等于-比较对象的值是否不相等 |
> | 大于-比较左边的值是否大于右边的值 |
< | 小于-比较左边的值是否小于右边的值 |
>= | 大于等于-比较左边的值是否大于等于右边的值 |
<= | 小于等于-比较左边的值是否小于等于右边的值 |
- 逻辑运算符的使用
运算符 | 格式 | 说明 |
---|
or | x or y | x为true,则返回true;x为false,则返回y |
and | x and y | x为true,则返回y;x为false,则返回false |
not | not x | x为true,则返回false;x为false,则返回true |
- 同一运算符
运算符 | 描述 |
---|
is | 判断两个标识符是不是引用同一个对象 |
is not | 判断两个标识符是不是引用不同对象 |
注:同一运算符是判断是否两个变量的地址;而比较运算符是判断两个变量的值。
字符串
- 编码
函数 | 含义 |
---|
ord() | 把字符转换成对应的Unicode码 |
chr() | 把十进制字符转换成对应的字符 |
- 创建
- 通过单引号或双引号创建字符串。(灵活运用)
- 连续三个单引号或三个双引号,可以创建多行字符串。
- 空字符串和len()函数
- 允许空字符串的存在,不包含任何字符串且长度为0
- len()用于计算字符串含有多少字符
- 转义字符
转义字符 | 描述 |
---|
\ | 续行号 |
\ | 反斜杠符号 |
’ | 单引号 |
‘’ | 双引号 |
\b | 退格 |
\n | 换行 |
\t | 横向制表符 |
\r | 回车 |
- 拼接
- 可以使用“+”将两个字符串拼接
- 可以将多个字面字符串直接放到一起实现拼接
- 复制
使用“*”可以实现字符串复制。
下面代码就是把“xy”这个字符串重复了30次。
a="xy"*30
- 不换行打印
如果进行两次以上调用print打印字符,默认会换行,如果不想换行,可以通过参数end=“任意字符串”实现。
print("wy",end="*")
print("xx",end="#")
结果如下:
- 从控制台读取字符串
使用input()从控制台读取键盘输入的内容。
举个栗子
>>> myname=input("请输入你的名字:")
- str()实现数字转型字符串
其他数据类型转换为字符串 - 使用[ ]提取字符
[ ]中是偏移量,包含两种搜索
- 正向搜索:最左侧第一个字符,偏移量是0,最后一个字符(即最右边的字符)偏移量是len(str)-1;
- 反向搜索:最右侧第一个字符,偏移量是-1,最后一个字符(即最左边的字符)偏移量是-len(str)。
- replace()实现字符串替换
字符串是不可改变的。但是,确实有时候需要替换某些字符,只能通过创建新的字符串来实现。所谓的新就是说,新旧字符串的地址不一样。 - 切片slice操作
标准格式为:[起始偏移量:终止偏移量:步长]
包头不包尾
典型操作如下表所示:
操作和说明 | 示例 | 结果 |
---|
[:] 提取整个字符串 | “wangyx” [:] | “wangyx” |
[start:] 从start索引开始到结尾 | “wangyx” [1:] | “angyx” |
[:end] 从开头到end-1 | “wangyx” [:3] | “wan” |
[start:end] 从start到end-1 | “wangyx” [1:3] | “an” |
[start: end : step] 从start到end-1,步长为step | “wangyx” [1:5:2] | “ag” |
- split()分割和join()合并
split()可以基于指定分隔符将字符串分割成多个子字符串。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下:
myname="wangyx"
myname.split("a")
结果:
join()将子字符串连接起来。示例代码如下:
myname=['wyx','xjp']
'i'.join(myname)
结果:
-
字符串驻留机制
字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线、字母和数字)会启用字符串驻留机制。用代码来解释:
也就是说,符合标识符规则的字符串,当再次调用时,直接调出,id不变。
-
字符串比较和同一性
符号 | 含义 |
---|
==,!= | 是否含有相同的字符 |
is,not is | 地址是否相同 |
in,not in | 某个字符(或者子字符串)是否在字符串中 |
- 字符串的格式化
- format()基本用法
直接上代码:
注: 要是数字的话,顺序必须一致,但是要是像第二种情况,顺序随便。 - 填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:后带填充的字符,只能是一种字符,不指定的话默认是用空格填充。 - 数字格式化
方法 | 说明 |
---|
{:2f } | 保留小数点后两位 |
{:+.2f } | 带符号保留小数点后两位 |
{:0f } | 不带小数 |
{:0>2d } | 数字补零(填充左边,宽度为2) |
{:x>4d } | 数字补x(填充右边,宽度为4) |
{:, } | 以逗号分隔的数字格式 |
{:,.2% } | 百分比格式 |
{:,.2e} | 指数记法 |
{:,10d } | 右对齐(默认),宽度为10 |
{:<10d } | 左对齐,宽度为10 |
{:^10d } | 居中,宽度为10 |
- 字符串常用方法汇总
方法 | 说明 |
---|
len(a) | 字符串a的长多 |
a.statrwith(‘w’) | 判断字符串a是否以w开头 |
a.endswith(‘w’) | 判断字符串a是否以w结尾 |
a.find(‘w’) | 字符串中w第一次出现的位置 |
a.rfind(‘w’) | 字符串中w最后一次出现的位置 |
a.count(‘w’) | 字符串中w出现的次数 |
a.isalnum() | 字符串全是字母或数字 |
方法 | 说明 |
---|
a.strip(“*”) | 去除字符串中首尾信息(比如“*”) |
a.lstrip(“*”) | 去除字符串中左边信息(比如“*”) |
a.rstrip(“*”) | 去除字符串中右边信息(比如“*”) |
方法 | 说明 |
---|
a.capitalize() | 产生新的字符串,首字母大写 |
a.title() | 产生新的字符串,每个单词的首字母大写 |
a.upper() | 产生新的字符串,所有字符全转成大写 |
a.lower() | 产生新的字符串,所有字符全转成小写 |
a.swapcaser() | 产生新的字符串,所有字符全转成大小写 |
方法 | 说明 |
---|
a.center(10,“*”) | 将a在10个字符中居中,剩余用“*”补充 |
a.ljust(10,“*”) | 将a在10个字符中居左,剩余用“*”补充 |
a.rjust(10,“*”) | 将a在10个字符中居右,剩余用“*”补充 |
方法 | 说明 |
---|
a.isalnum() | 是否全部为字母或数字 |
a.isalpha() | 是否全部为字母 |
a.isdigit() | 是否全部为数字 |
a.isspace() | 是否为空白符 |
a.isupper() | 是否全部为大写字母 |
a.islower() | 是否全部为小写字母 |