运算符

02.万恶之源-运算符和编码

⼀一. 格式化输出

   

 现在有以下需求,让⽤用户输入name, age, job,hobby 然后输出如下所⽰示:

 

你怎么实现呢?你会发现,⽤用字符拼接的⽅方式还难实现这种格式的输出,所以⼀一起来学⼀一下新姿势只需要把要打印的格式先准备好, 由于⾥里里⾯面的 ⼀一些信息是需要⽤用户输⼊入的,你没办法预设知道,因此可以先放置个占位符,再把字符串串⾥里里的占位符与外部的变量量做个映射关系就好啦

 

%s就是代表字符串串占位符,除此之外,还有%d, 是数字占位符, 如果把上⾯面的age后⾯面的换成%d,就代表你必须只能输⼊入数字啦

这时对应的数据必须是int类型. 否则程序会报错使⽤用时,需要进⾏行行类型转换.

 

如果, 你头铁. 就不不想转换. 觉着转换很麻烦. 也可以全部都⽤用%s. 因为任何东⻄西都可以直接转换成字符串串--> 仅限%s 现在⼜又来新问题了了. 如果想输出:

 

这⾥里里的问题出在哪⾥里里呢? 没错2%, 在字符串串中如果使⽤用了了%s这样的占位符. 那么所有的%都将变成占位符. 我们的2%也变成了了占位符. ⽽而"%的"是不存在的, 这⾥里里我们需要使⽤用%%来表⽰示字符串串中的%.

注意: 如果你的字符串串中没有使⽤用过%s,%d站位. 那么不需要考虑这么多. 该%就%.没⽑毛病老铁.

print("我叫%s, 今年年22岁了了, 学习python2%%了了" % '王尼玛')     # 有%占位符 print("我叫王尼玛, 今年年22岁, 已经凉凉了了100%了了")       # 没有占位符

⼆二. 基本运算符

    计算机可以进⾏行行的运算有很多种,可不不只加减乘除这么简单,运算按种类可分为:

        算数运算、         ⽐比较运算、         逻辑运算、         赋值运算、         成员运算、         身份运算、         位运算.

    今天我们暂只学习算数运算、⽐比较运算、逻辑运算、赋值运算

2.1 算数运算以下假设变量量:a=10,b=20

 

2.2 ⽐比较运算

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

 

赋值运算

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

 

算逻辑运

 

针对逻辑运算的进⼀一步研究:

  1, 在没有()的情况下not 优先级⾼高于 and,and优先级⾼高于or,即优先级关系为( )>not>and>or,同⼀一优先级从左往右计算。

        () > not > and > or

例例题:判断下列列逻辑语句句的True,False。

3>4 or 4<3 and 1==1

1 < 2 and 3 < 4 or 1>2

2 > 1 and 3 < 4 or 4 > 5 and 2 < 1

1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8

1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

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

 

例例题:求出下列列逻辑语句句的值。

8 or 4

0 and 3

0 or 4 and 3 or 7 or 9 and 6

三. 编码的问题

python2解释器器在加载 .py ⽂文件中的代码时,会对内容进⾏行行编码(默认ascill),⽽而python3对内容进⾏行行编码的默认为utf-

8。

计算机:

    早期. 计算机是美国发明的. 普及率不不⾼高, ⼀一般只是在美国使⽤用. 所以.    早的编码结构就是按照美国⼈人的习惯来编码的. 对应数字+字⺟母+特殊字符⼀一共也没多少. 所以就形成了了    早的编码ASCII码. 直到今天ASCII依然深深的影响着我们.

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字⺟母的⼀一套电脑编码系统,主要⽤用于显示现代英语和其他⻄西欧语⾔言,其          多只能⽤用 8 位来表示(⼀一个字节),即:2**8 = 256,所以,ASCII码       多只能表示 256 个符号。

Bin(⼆二进制)

Oct(⼋八进制)

Dec(⼗十进制)

Hex(⼗十六进制)

缩写/字符

解释

0000 0000

0

0

00

NUL(null)

空字符

0000 0001

1

1

01

SOH(start of he adline)

标题开始

0000 0010

2

2

02

STX (start of te xt)

正⽂文开始

0000 0011

3

3

03

ETX (end of tex

t)

正⽂文结束

0000 0100

4

4

04

EOT (end of tra nsmission)

传输结束

0000 0101

5

5

05

ENQ (enquiry)

请求

0000 0110

6

6

06

ACK (acknowle dge)

收到通知

0000 0111

7

7

07

BEL (bell)

响铃

0000 1000

10

8

08

BS (backspace)

退格

0000 1001

11

9

09

HT (horizontal t ab)

⽔水平制表符

0000 1010

12

10

0A

LF (NL line feed , new line)

换⾏行行键

0000 1011

13

11

0B

VT (vertical tab)

垂直制表符

0000 1100

14

12

0C

FF (NP form fee d, new page)

换⻚页键

0000 1101

15

13

0D

CR (carriage ret urn)

回⻋车键

 

 

 

 

 

 

 

0000 1110

16

14

0E

SO (shift out)

不不⽤用切换

0000 1111

17

15

0F

SI (shift in)

启⽤用切换

0001 0000

20

16

10

DLE (data link e scape)

数据链路路转义

0001 0001

21

17

11

DC1 (device con

trol 1)

设备控制1

0001 0010

22

18

12

DC2 (device co ntrol 2)

设备控制2

0001 0011

23

19

13

DC3 (device co ntrol 3)

设备控制3

0001 0100

24

20

14

DC4 (device co ntrol 4)

设备控制4

0001 0101

25

21

15

NAK (negative acknowledge)

拒绝接收

0001 0110

26

22

16

SYN (synchrono

us idle)

同步空闲

0001 0111

27

23

17

ETB (end of tra ns. block)

结束传输块

0001 1000

30

24

18

CAN (cancel)

取消

0001 1001

31

25

19

EM (end of med ium)

媒介结束

0001 1010

32

26

1A

SUB (substitute

)

代替

0001 1011

33

27

1B

ESC (escape)

换码(溢出)

0001 1100

34

28

1C

FS (file separat or)

⽂文件分隔符

0001 1101

35

29

1D

GS (group sepa rator)

分组符

0001 1110

36

30

1E

RS (record sepa rator)

记录分隔符

0001 1111

37

31

1F

US (unit separa tor)

单元分隔符

0010 0000

40

32

20

(space)

空格

0010 0001

41

33

21

!

叹号

0010 0010

42

34

22

"

双引号

 

 

 

 

 

 

 

0010 0011

43

35

23

#

井号

0010 0100

44

36

24

$

美元符

0010 0101

45

37

25

%

百分号

0010 0110

46

38

26

&

和号

0010 0111

47

39

27

'

闭单引号

0010 1000

50

40

28

(

开括号

0010 1001

51

41

29

)

闭括号

0010 1010

52

42

2A

*

星号

0010 1011

53

43

2B

+

加号

0010 1100

54

44

2C

,

逗号

0010 1101

55

45

2D

-

减号/破折号

0010 1110

56

46

2E

.

句句号

00101111

57

47

2F

/

斜杠

00110000

60

48

30

0

数字0

00110001

61

49

31

1

数字1

00110010

62

50

32

2

数字2

00110011

63

51

33

3

数字3

00110100

64

52

34

4

数字4

00110101

65

53

35

5

数字5

00110110

66

54

36

6

数字6

00110111

67

55

37

7

数字7

00111000

70

56

38

8

数字8

00111001

71

57

39

9

数字9

00111010

72

58

3A

:

冒号

00111011

73

59

3B

;

分号

00111100

74

60

3C

< 

⼩小于

00111101

75

61

3D

=

等号

00111110

76

62

3E

> 

⼤大于

00111111

77

63

3F

?

问号

 

 

 

 

 

 

 

01000000

100

64

40

@

电⼦子邮件符号

01000001

101

65

41

A

⼤大写字⺟母A 

01000010

102

66

42

B

⼤大写字⺟母B

01000011

103

67

43

C

⼤大写字⺟母C

01000100

104

68

44

D

⼤大写字⺟母D

01000101

105

69

45

E

⼤大写字⺟母E

01000110

106

70

46

F

⼤大写字⺟母F

01000111

107

71

47

G

⼤大写字⺟母G

01001000

110

72

48

H

⼤大写字⺟母H

01001001

111

73

49

I

⼤大写字⺟母I

01001010

112

74

4A

J

⼤大写字⺟母J

01001011

113

75

4B

K

⼤大写字⺟母K

01001100

114

76

4C

L

⼤大写字⺟母L

01001101

115

77

4D

M

⼤大写字⺟母M

01001110

116

78

4E

N

⼤大写字⺟母N

01001111

117

79

4F

O

⼤大写字⺟母O

01010000

120

80

50

P

⼤大写字⺟母P

01010001

121

81

51

Q

⼤大写字⺟母Q

01010010

122

82

52

R

⼤大写字⺟母R

01010011

123

83

53

S

⼤大写字⺟母S

01010100

124

84

54

T

⼤大写字⺟母T

01010101

125

85

55

U

⼤大写字⺟母U

01010110

126

86

56

V

⼤大写字⺟母V

01010111

127

87

57

W

⼤大写字⺟母W

01011000

130

88

58

X

⼤大写字⺟母X

01011001

131

89

59

Y

⼤大写字⺟母Y

01011010

132

90

5A

Z

⼤大写字⺟母Z

01011011

133

91

5B

[

开⽅方括号

01011100

134

92

5C

\

反斜杠

 

 

 

 

 

 

 

01011101

135

93

5D

]

闭⽅方括号

01011110

136

94

5E

^

脱字符

01011111

137

95

5F

_

下划线

01100000

140

96

60

`

开单引号

01100001

141

97

61

a

⼩小写字⺟母a 

01100010

142

98

62

b

⼩小写字⺟母b

01100011

143

99

63

c

⼩小写字⺟母c

01100100

144

100

64

d

⼩小写字⺟母d

01100101

145

101

65

e

⼩小写字⺟母e

01100110

146

102

66

f

⼩小写字⺟母f

01100111

147

103

67

g

⼩小写字⺟母g

01101000

150

104

68

h

⼩小写字⺟母h

01101001

151

105

69

i

⼩小写字⺟母i

01101010

152

106

6A

j

⼩小写字⺟母j

01101011

153

107

6B

k

⼩小写字⺟母k

01101100

154

108

6C

l

⼩小写字⺟母l

01101101

155

109

6D

m

⼩小写字⺟母m

01101110

156

110

6E

n

⼩小写字⺟母n

01101111

157

111

6F

o

⼩小写字⺟母o

01110000

160

112

70

p

⼩小写字⺟母p

01110001

161

113

71

q

⼩小写字⺟母q

01110010

162

114

72

r

⼩小写字⺟母r

01110011

163

115

73

s

⼩小写字⺟母s

01110100

164

116

74

t

⼩小写字⺟母t

01110101

165

117

75

u

⼩小写字⺟母u

01110110

166

118

76

v

⼩小写字⺟母v

01110111

167

119

77

w

⼩小写字⺟母w

01111000

170

120

78

x

⼩小写字⺟母x

01111001

171

121

79

y

⼩小写字⺟母y

 

 

 

 

 

 

01111010

172

122

7A

z

⼩小写字⺟母z

01111011

173

123

7B

{

开花括号

01111100

174

124

7C

|

垂线

01111101

175

125

7D

}

闭花括号

01111110

176

126

7E

~

波浪号

01111111

177

127

7F

DEL (delete)

删除

随着计算机的发展. 以及普及率的提⾼高. 流⾏行行到欧洲和亚洲. 这时ASCII码就不不合适了了. ⽐比如: 中⽂文汉字有⼏几万个. ⽽而ASCII 多也就256个位置. 所以ASCII不不⾏行行了了. 怎么办呢? 这时, 不不同的国家就提出了了不不同的编码⽤用来适⽤用于各⾃自的语⾔言环境.

⽐比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使⽤用计算机了了.

    GBK, 国标码占⽤用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是⽤用英⽂文写的. 你不不⽀支持英⽂文肯定不不⾏行行. ⽽而英

⽂文已经使⽤用了了ASCII码. 所以GBK要兼容ASCII.

    这⾥里里GBK国标码. 前⾯面的ASCII码部分. 由于使⽤用两个字节. 所以对于ASCII码⽽而⾔言. 前9位都是0

 

    国标码的弊端: 只能中国⽤用. ⽇日本就垮了了. 所以国标码不满⾜足我们的使⽤用. 这时提出了了⼀一个万国码Unicode. unicode⼀一开始设计是每个字符两个字节. 设计完了了. 发现我⼤大中国汉字依然⽆无法进⾏行行编码. 只能进⾏行行扩充. 扩充成32位也就是4个字

节. 这回够了了. 但是. 问题来了了. 中国字9万多. ⽽而unicode可以表⽰示40多亿. 根本⽤用不了了. 太浪费了了. 于是乎, 就提出了了新的

UTF编码.可变⻓长度编码

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

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

GBK: 每个字符占2个字节, 16位.

单位转换:

8bit = 1byte

1024byte = 1KB

1024KB = 1MB

1024MB = 1GB

1024GB = 1TB

1024TB = 1PB

1024TB = 1EB

1024EB = 1ZB

1024ZB = 1YB

1024YB = 1NB

1024NB = 1DB

常⽤用到TB就够了了

补充1: while循环.

    while 条件:

        循环体

    else: 循环在正常情况跳出之后会执⾏行行这⾥里里

 

注意: 如果循环是通过break退出的. 那么while后⾯面的else将不会被执⾏行行, 只有在while条件判断是假的时候才会执⾏行行这个 else

pass: 不表⽰示任何内容. 为了了代码的完整性.  占位⽽而已

补充2: in和not in

    可以判断xxx字符串串是否出现在xxxxx字符串串中

 

转载于:https://www.cnblogs.com/tubuqianqiulu/p/9265244.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值