格式化输出
#用字符拼接的方式很难实现下列这种格式的输出 ------------ info of Nero ----------- Name : Nero Age : 22 job : Killer Hobbie: Money ------------- end ---------------
设置好需要打印的格式,用占位符%代替需要输入的信息,再把字符串里的占位符与外部变量做个映射就可以轻松解决以上格式的输出问题。
name = input('Name: ') age = input('Age: ') job = input('Job: ') hobbie = input('Hobbie') msg = ''' ------------info of %s------------ # 这里每一个%s都是一个占位符,本行%s关联的是后面括号里的name Name : %s # 代表变量name Age : %d # 代表变量age Job : %s # 代表变量job Hobbies : %s # 代表变量hobbie ----------------end---------------- ''' %(name,name,int(age),job,hobbie) #括号内的变量依次从左至右对应一个占位符,%s代表字符串占位符,%d代表数字占位符 print(msg)
注:如果要在字符串内显示“%”,应该在%之前再加一个% ,如想显示30%就应该是“30%%”,如果直接输入30%将会报错,输出的是后面的%符号。第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。
基本运算符
运算符
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算
算数运算
以下假设变量:a = 10 , b = 20
运算符 | 描述 | 实例 |
+ | 加-两个对象相加 | a + b 输出结果30 |
- | 减-得到一个负数或一个数减去另一个数 | a - b 输出结果-20 |
* | 乘-两个数相乘或返回一个被重复若干次的字符串 | a * b 输出结果200 |
/ | 除-x除以y | b / a 输出结果2 |
% | 取模-返回除法的余数 | b % a 输出结果0 |
** | 幂-返回x的y次幂 | a ** b 为10的20次方 |
// | 取整除-返回商的整数部分 | 9 // 2 输出结果4,9.0 // 2.0 输出结果4.0 |
数学操作符的操作顺序(也称为“优先级”)与数学中类似。在没有括号的前提,**操作符首先求值,接下来是*、/、//和%操作符,从左到右。+和-操作符最后求值,也是从左到右。
比较运算
以下假设变量:a = 10 , b = 20
运算符 | 描述 | 实例 |
== | 等于-比较对象是否相等 | (a == b)返回False |
!= | 不等于-比较两个对象是否不相等 | (a != b)返回True |
<> | 不等于-比较两个对象是否不相等 | (a <> b)返回True,这个运算符类似 != |
> | 大于-返回x是否大于y | (a > b)返回False |
< | 小于-返回x是否小于y | (a < b)返回True |
>= | 大于等于-返回x是否大于等于y | (a >= b)返回False |
<= | 小于等于-返回x是否小于等于y | (a <= b)返回True |
赋值运算
以下假设变量: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 |
逻辑运算
运算符 | 描述 | 实例 |
and | 布尔“与”-x and y只有当x与y都为True时,返回的值为True,有一个为False时则为False |
True and True == True True and False ==False |
or | 布尔“或”-x or y当x与y任意一个为True时,返回的值为True,当x与y都为False时返回False |
True or True == True True or False == True |
not | 布尔“非”-返回一个相反的值 |
not True == False not False == True |
注:在没有()的前提下,not优先级高于and,and优先级高于or,即优先级关系为()>not>and>or,相同优先级从左向右计算。
编码
python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ASCII,不支持中文显示),而python3对内容进行编码的默认为utf-8。
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...