Python学习之路—2
字符串格式化
格式化字符串时,Python使用一个字符串作为模板。模板中包含占位符,这些占位符为真实值预留位置,并说明真实数值应该呈现的格式。每个值对应一个占位符。
"%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%)。
print(“String %fromat1 %fromat2...”%(varialbe1,varialbe...))
Python中常用的格式户字符:
| 格式化字符 | 说明 |
|---|---|
| %c | 单个字符 |
| %s | 字符串 |
| %d | 十进制整数 |
| %f | 浮点数 |
例:
print("My name is %s, I'm %d years old" %('Tom', 21))
"My name is %s, I'm %d years old"是格式换模板。%s为第一个格式化符号,表示一个字符串。%d为第二个格式化符号,表示一个整数。Tom替换%s,21替换%d。
最后的输出结果为:
My name is Tom, I'm 21 years old
现在我们知道%后面加上一个特定的字符就是一个格式化字符,但是我们可能会遇到这种情况,就是我想打印%号,那该怎么办?比如下面这种情况:
我们要打印:我叫夏明,我的学习进度是80%。然后我们写了一个模板:我叫%s,我的学习进度是%s%。so easy。我们把它输出看看。
print('我叫%s,我的学习进度是%d%' %('小明', 80))
一执行,哎呀报错了
ValueError: incomplete format
#ValueError:不完整的格式
这是因为编译器把%d后面那个%也当成了格式化字符的一部分,但是后面少了个字符,所以就报错说不完整的格式。那该怎么办呢。其实这个问题很好解决只需要再加一个%即可。
print('我叫%s,我的学习进度是%d%%' %('夏明',80))
输出的结果:
我叫夏明,我的学习进度是80%
我们可以看到现在很好的解决了这个问题。
编码和进制
编码:
计算机编码指电脑内部代表字母或数字的方式.常见的编码方式有:ASCII编码,GB2312编码(简体中文),GBK,Unicode,UTF-8编码等。
ASCII编码:
在计算机中,所有的数据只可能是0或者1(用高电平和低电平分别表示1和0),那么我们通常看到的字符也就只能用0和1来表示呀。于是美国的科学家就想出一个办法,把一个特定的数字对应一个特定的字母进行存储和传输,比如我需要存储字母a,那么我存入一个数字97(即在计算机中存入二进制(01100001),这个过程叫做编码(encode),而我们在读取数据的时候,当遇到97时,我们就让计算机显示字母a,这个过程叫做解码(decode)。
为了大家在数据传输的时候不至于产生误会,那么我们需要让所有的人都使用数字97来代表字母a,所以需要制定一份标准(即码表),最开始的这个标准叫做ASCII码表。
GB2312编码:
GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中包括6763个汉字,其中一级汉字3755个,二级汉字3008个;包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语在内的682个全角字符。
GBK编码:
又称统一码、万国码、单一码,包括字符集、编码方案等。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
UTF-8编码:
它将一个字符编为1-4个字节,其中一个字节的字符和ASCII 完全一致,所以它也向下兼容ASCII。和ANSI类似,UTF-8第一个字节决定了之后多少个字节是一组好基友。多数汉字在UTF-8里为3个字节,有一些生僻的汉字会编到4字节。
编码单位:
最小的单位是(bit),接着是字节(Byte),8位为一个字节。
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
进制:
二进制数由0和1,八进制数由0-7, 十进制数由0-9,十六进制数由0-9,A-F组成
1088
| 二进制 | 八进制 | 十进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 10 | 2 | 2 | 2 |
| 11 | 3 | 3 | 3 |
| 100 | 4 | 4 | 4 |
| 101 | 5 | 5 | 5 |
| 110 | 6 | 6 | 6 |
| 111 | 7 | 7 | 7 |
| 1000 | 10 | 8 | 8 |
| 1001 | 11 | 9 | 9 |
| 1010 | 12 | 10 | A |
| 1011 | 13 | 11 | B |
| 1100 | 14 | 12 | C |
| 1101 | 15 | 13 | D |
| 1110 | 16 | 14 | E |
| 1111 | 17 | 15 | F |
| 10000 | 20 | 16 | 10 |
运算符
1.算数运算符:
以下假设变量a为10,变量b为21:
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 - 两个对象相加 | a + b 输出结果 31 |
| - | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
| * | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
| / | 除 - x 除以 y | b / a 输出结果 2.1 |
| % | 取模 - 返回除法的余数 | b % a 输出结果 1 |
| ** | 幂 - 返回x的y次幂 | a**b 为10的21次方 |
| // | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
2.比较运算符:
以下假设变量a为10,变量b为20:
==等于 - 比较对象是否相等(a == b) 返回 False。
| 运算符 | 描述 | 实例 |
|---|---|---|
| != | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True。 |
| > | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
| < | 小于 - 返回x是否小于y | (a < b) 返回 True。 |
| >= | 大于等于 - 返回x是否大于等于y | (a >= b) 返回 False |
| <= | 小于等于 - 返回x是否小于等于y | (a <= b) 返回 True |
3.赋值运算符:
以下假设变量a为10,变量b为20:
|
运算符 |
描述 |
实例 |
|---|---|---|
| = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
| *= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
| /= | 除法赋值运算符 | c /= a 等效于 c = c / a |
| %= | 取模赋值运算符 | c %= a 等效于 c = c % a |
| **= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
4.逻辑运算符:
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
|
运算符 |
描述 |
实例 |
|---|---|---|
| and | "与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
| or | "或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
| not | "非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
5.成员运算符:
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
|
功能 |
语法 |
结果 |
|---|---|---|
| in | x in y | 如果 x 在 y 序列中返回 True。 |
| not in | x not in y | 如果 x 不在 y 序列中返回 True。 |
成员运算符的应用:
string = input('请输入内容:') while True: if '小粉嫩' in string or '大铁锤' in string: string = input('存在敏感字符请重新输入:') continue else: print(string) break

浙公网安备 33010602011771号