Python自学之路之day02-运算符和编码

一、格式化输出

1)生活或者工作中,我们常会看到人物介绍的一些信息:

------------ info of liulang ----------
Name  : Liu Lang 
Age   : 22 
job   : mage 
family: 符文之地 
---------- end ----------

 代码:

name = input("名称:")
age = input("年龄:")
job = input("职业:")
family = input("家族:")

info = """
---------- info of %s ----------
Name  : %s
Age   : %s
Job   : %s
Family: %s
---------- end ----------
""" %(name,name,age,job,family)
print(info)

 %s就是字符串占位符,%d是数字占位符,如果你指定占位符类型,那只能输入对应的字符类型,否则会出错

字符串与数字类型相互转换

int(str)    # 字符串转换成int
str(int)    # int转换成字符串

 2)如果想在格式化输出时,直接输出%我们需要使用2个%进行转义

例如:

print("我叫%s,我的职业是%s,我的工作已经完成了80%。" %("huahau","运维"))

这里面80%会报错,因为在字符串中已经出现%s占位符,python解释器会把所有的%都当成占位符,所以这里80%也会被认为是一个占位符,当然我们这里实际只传入2个占位符的值,所以会报错。

如果想要使用%,那么只需要用%%即可

print("我叫%s,我的职业是%s,我的工作已经完成了80%%。" %("huahau","运维")) # 有%占位符 
print("我叫花花,我的职业是运维,我的工作已经完成了80%。" ) # 没有占位符

 二、基本运算符

计算机有多种运算,常见的运算有:算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。

1)算数运算

以下假设变量a=10,b=20

2)比较运算

以下假设变量a=10,b=20

3)赋值运算

 以下假设变量a=10,b=20

4)逻辑运算

以下假设变量a=10,b=20

 逻辑运行进阶:

  逻辑运算优先级not > and > or

1、判断实例:

3>4 or 4<3 and 1==1  ## False
1 < 2 and 3 < 4 or 1>2 ## True
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1  ## True
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 ## False
1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6  ## False
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6  ##  False 

 2、 x or y , x为真,值就是x,x为假,值是y。

   x and y, x为真,值是y,x为假,值是x。

实例:

### x or y x True,则返回x
### x and y x True,则返回y
#
print(1 or 2) # 1 # print(3 or 2) # 3 # print(0 or 2) # 2 # print(0 or 100) # 100
# print(2 or 100 or 3 or 4)  # 2
# print(0 or 4 and 3 or 2) # 3

# print(2 or 1 < 3) #2
# print(3 > 1 or 2 and 2) #True
# print(3 < 1 or 2 and 2) #2
# print(3 < 1 or 0 > 1 and 3) # False
# 0 or 5 < 4  # False
# 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 # 2

三、编码

早期. 计算机是美国发明的. 普及率不高, 一般只是在美国使用. 所以. 早的编码结构就是按照美国人的习惯来编码的. 对应数字+字母+特殊字符一共也没多少. 所以就形成了早的编码ASCII码. 直到今天ASCII依然深深的影响着我们.
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电 脑编码系统,主要用于显示现代英语和其他西欧语言,最多只能用 8 位来表示(一个字节),即:2**8 = 256,所 以,ASCII码多只能表示 256 个符号。

8位为一个字节(1bytes)

 ascii  只能表示256种可能,中文有几万多个,已经无法满足。

unicode:一开始设计是每个字符两个字节.设计完了.发现我⼤大中国汉字依然无法进行编码.只能进行扩充. 扩充成32位也就是4个字节.这回够了.但是.问题来了.中国字9万多. 而unicode可以表⽰示40多亿. 根本用不了.太浪费了.于是乎,就提出了新的UTF编码.可变长度编码。

UTF-8: 每个字符最少占8位. 每个字符占用的字节数不定.根据文字内容进行具体编码. 比如. 英文. 就一个字节就够了. 汉字占3个字节.这时即满足了中文.也满足了节约. 也是目前使用频率最高的一种编码。

 UTF-16: 每个字符最少占16位.

GBK: 中国自己发明,每个字符占2个字节, 16位.

单位转换: 
1bit    8bit = 1bytes
1byte   1024byte = 1KB
1KB     1024kb = 1MB
1MB     1024MB = 1GB
1GB     1024GB = 1TB

计算机存储,最终也是0101二进制方式存储到硬盘上。

posted @ 2019-08-01 15:10  小哥boy  阅读(66)  评论(0)    收藏  举报