2、字符串的拼接
在Python中,字符串与字符串之间可以通过+
来完成拼接,但是字符串变量无法与非字符串变量进行拼接,因为类型不一致。
name1 = 'hello' name2 = "world" print(name1+name2+"!")
3、字符串的格式化
a、利用占位符进行格式化:
和C语言一样,Python的字符串格式化,也可以使用占位符的方式进行格式化。
%
占位符
多个变量占位,变量要用括号括起来并按照占位的顺序填入
year: int = 99 Type: str = "bool" description = "C语言在C%d后才支持%s类型" % (year, Type) print(description)
在格式化的过程中,数字类型要被转成字符串后然后进行拼接。
b、快速格式化:
Python支持通过语法:f"内容{变量}"
的格式来快速格式化,这种写法不做精度控制也不理会类型,适用于快速格式化字符串
year = 99 type1 = "bool" # f是format 格式化 print(f"C语言直到C{year},才支持{type1}类型")
c、格式化表达式:
在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码。
print("2*4计算结果:%d" % (2 * 4)) print(f"3*4计算结果:{3 * 4}") print("计算结果类型:%s" % type(3 * 4))
4、格式化的精度控制
在一些特殊场景下面,我们要对数据的精度进行处理,这时就要用到精度处理了,Python的精度处理与C语言是一样的。
Python
可以使用辅助符号m.n
来控制数据的宽度和精度
- m,控制宽度,要求的是数字,设置的宽度小于数字自身不生效。
- n,控制小数点精度,要求是数字,会进行小数的四舍五入。(这一点与C语言不同)
num1 = 11 num2 = 11.245 print(num1) print(num2) print("数字是11,宽度是5:%5d" % num1) print("数字是11,245,宽度是7,精度是2:%7.2f" % num2) print("数字是11,245,宽度是7,精度是3:%7.3f" % num2)
六、运算符
1、算术运算符
注意:
**是求乘方. 不光能算整数次方, 还能算小数次方
# 【运算符】 a = 3 + 2 b = 5 - 2 c = 2.5 * 2 d = 10 / 2 e = 10 // 3 f = 10 % 3 g = 2 ** 2 print(a) print(b) print(c) print(d) print(e) print(f) print(g) # 【赋值运算符与复合运算符】 num = 1 num += 1 print(num) num -= 1 print(num) num *= 2 print(num) num /= 2 print(num) num **= 2 print(num) print("----------------------------------------") num = 10 num //= 3 print(num) print("----------------------------------------") num = 10 num %= 3 print(num) print("----------------------------------------")
2、关系运算符
像 <
<=
>
>=
==
!=
这一系列的运算符称为 关系运算符, 它们是在比较操作数之间的关系。
- 如果关系符合, 则表达式返回
True
. 如果关系不符合, 则表达式返回False
a: int = 10 b: int = 20 print(a > b) print(a >= b) print(a < b) print(a <= b) print(a == b) print(a != b)
- 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较.(对字符串的比较采用的是,按照ASCII码进行比较)
a: str = "hello" b: str = "world" print(a > b) print(a >= b) print(a < b) print(a <= b) print(a == b) print(a != b)
1. Python可以直接使用 == 或者 != 即可对字符串内容判定相等. (这一点和 C / Java 不同). 2. 对于浮点数来说, 不要使用 == 判定相等,浮点数在计算机中的表示并不是精确的! 在计算过程中, 就容易出现非常小的误差
print(0.1 + 0.2) print(0.1 + 0.2 == 0.3)
浮点数正确的比较方式: 不再严格比较相等了, 而是判定差值小于允许的误差范围.
a: float = 0.1 b: float = 0.2 print(-0.00000001 < a + b - 0.3 < 0.00000001)
Python中支持 < x + y <
这种连续判断,C/C++/Java中是不支持的。
3、逻辑运算符
像 and
or
not
这一系列的运算符称为 逻辑运算符。
and
并且. 两侧操作数均为True
, 最终结果为True
. 否则为False
. (一假则假)or
或者. 两侧操作数均为False
, 最终结果为False
. 否则为True
. (一真则真)not
逻辑取反. 操作数本身为True
, 则返回False
. 本身为False
, 则返回True
.
a: int = 10 b: int = 20 c: int = 30 print(a < b and b < c) print(a < b or b < c) print(not a > b)
关于短路求值
和其他编程语言类似, Python 也存在短路求值的规则.
- 对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行.
- 对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行.
print(10 > 20 and 10 / 0 == 1) print(10 < 20 or 10 / 0 == 1)
4、赋值运算符
赋值运算符,表示赋值. 这个我们已经用过很多次了,不在进行介绍,我们来看看两种特殊情况的赋值。
- 链式赋值
a = b = 10 print(a) print(b)
一般不建议使用链式赋值,尽量一行代码就只是包含一个操作!
- 多元赋值
a, b = 10, 20 print(a) print(b)
多元赋值还是有一定的意义的,能帮我们解决一些特殊问题,比如完成两个变量的交换。
a, b = 10, 20 print(a, b) # 交换a, b的值 a, b = b, a print(a, b)
七、一些补充
1、关于前后置++ 或- -
Python 中不支持++
--
这样的自增自减操作的!
++a
之所以没有语法报错,是 Python解释器把++
当成了两个正号,--a
也是不会报错,把--
当成了两个负号,负负得正,最终的值仍然不变。
但是后置++
和后置--
都是语法上报错的!
2、关于Python语句结束后要不要加;
在Python中,一个语句写完了之后,可以加上分号,也可以不加。通常情况下都是不加的.如果加了,也不算错。
如果把多个语句写到同一行了,这个时候语句之间,务必要加上分号的.(这种写在一行的写法并不推荐)