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
View Code

 

posted @ 2017-08-17 22:03  流星之泪  阅读(127)  评论(0)    收藏  举报