python基础二(格式化输出,运算符and,or not,编码)
1.格式化输出(重要)
%s:字符串 %d:数字
name=input('请输入你的名字:')
age=input('请输入你的年龄:')
sex=input('请输入你的性别:')
msg='我叫'+name+'年龄是'+age+'性别'+sex
print(msg)
第一种用法
name=input('请输入你的名字:')
age=int(input('请输入你的年龄:'))
job=input('请输入你的工作:')
hobby=input('请输入你的爱好:')
msg = '''
------------ info of %s -----------
Name : %s
Age : %d
job : %s
Hobbie: %s
------------- end -----------------
''' % (name, name, age, job, hobby)
print(msg)
第二种用法
dic = {'name': '老男孩','age': 40,'job' : 'boss','hobby':'money'} #在写字典的时候,符号比较多,一定要注意大小写。
msg = '''
------------ info of %(name)s -----------
Name : %(name)s
Age : %(age)d
job : %(job)s
Hobbie: %(hobby)s
------------- end -----------------
''' % dic
print(msg)
2.while else
count=0
while count<=5:
count+=1
print('Loop',count)
# if count==4:break
else:
print('循环正常执行完了')
当while 循环 被break打断的时候,不再走else 语句。
count=0
while count<=5:
count+=1
print('Loop',count)
if count==4:break
else:
print('循环正常执行完了')
3.运算符
and:与0得0 or:或1得1
第一种情况 逻辑运算符前后都是比较运算
优先级概念:() > not > and > or,同一优先级从左至右以此计算。
print(2 > 1 and 3 < 4 or 8 < 10 and 4 > 5) #T
print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1) #T
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8) #F
print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) #F
第二种情况 逻辑运算符前后都是数字
x or y if x True,return x,else y
print(3 or 5) #3
print(2 or 5) #2
print(0 or 5) #5
print(-4 or 5) #-4
print(3 and 5) #5
print(1 or 3 or 4 or 0) #1
print(1 or 3 or 0) #1
print(1 > 2 and 3 or 4) #4 别急,把试题看完
数字与bool值转化
int ---> bool 非零 True ,零 False
bool---> int True 1, False 0,
'''
print(bool(100)) #True
print(bool(0)) #False
print(int(True)) #1
print(int(False)) #0
4.编码初(重要)
谍战片,滴滴,滴滴滴,高低电平 0101011
电脑文件的储存,文件的传输 0111010
初级密码本:ascii 字母,数字,特殊字符。
01010001 8位表示1个字节,1个字节表示1个字符。
字符,组成字节的最小单元 abc a b c
中华人民共和国 中 国
a 01100001
b 01100010
c 01100011
万国码:unicode 16位,2个字节表示1个字符
a 01100001 01100011
中 01100001 01101001
升级:32位,4个字节表示一个字符
a 01100001 01100011 01100011 01101011
中 01100001 01101001 01100011 01100111
浪费资源。
对unicode进行升级,utf-8
utf-8 最少用8位,1个字节表示一个字符。
英文:a 01100001 用8位,1个字节表示1个字符。
欧洲: 01101001 01100011 用16位,2个字节表示1个字符。
亚洲: 01101001 01100011 01100011 用24位,3个字节表示1个字符。
utf-16 最少用16位,2个字节表示一个字符。
gbk:国家标准
a 01100001 用8位,1个字节表示1个字符。(本质就是ascii)
中 01100001 01011110 用16位,2个字节表示1个字符。
8位 1个byte
1024bytes 1kb
1024kb 1MB
1024MB 1GB
1024GB 1TB
内容编码。
python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8。
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 headline)
|
标题开始
|
0000 0010
|
2
|
2
|
02
|
STX (start of text)
|
正文开始
|
0000 0011
|
3
|
3
|
03
|
ETX (end of text)
|
正文结束
|
0000 0100
|
4
|
4
|
04
|
EOT (end of transmission)
|
传输结束
|
0000 0101
|
5
|
5
|
05
|
ENQ (enquiry)
|
请求
|
0000 0110
|
6
|
6
|
06
|
ACK (acknowledge)
|
收到通知
|
0000 0111
|
7
|
7
|
07
|
BEL (bell)
|
响铃
|
0000 1000
|
10
|
8
|
08
|
BS (backspace)
|
退格
|
0000 1001
|
11
|
9
|
09
|
HT (horizontal tab)
|
水平制表符
|
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 feed, new page)
|
换页键
|
0000 1101
|
15
|
13
|
0D
|
CR (carriage return)
|
回车键
|
0000 1110
|
16
|
14
|
0E
|
SO (shift out)
|
不用切换
|
0000 1111
|
17
|
15
|
0F
|
SI (shift in)
|
启用切换
|
0001 0000
|
20
|
16
|
10
|
DLE (data link escape)
|
数据链路转义
|
0001 0001
|
21
|
17
|
11
|
DC1 (device control 1)
|
设备控制1
|
0001 0010
|
22
|
18
|
12
|
DC2 (device control 2)
|
设备控制2
|
0001 0011
|
23
|
19
|
13
|
DC3 (device control 3)
|
设备控制3
|
0001 0100
|
24
|
20
|
14
|
DC4 (device control 4)
|
设备控制4
|
0001 0101
|
25
|
21
|
15
|
NAK (negative acknowledge)
|
拒绝接收
|
0001 0110
|
26
|
22
|
16
|
SYN (synchronous idle)
|
同步空闲
|
0001 0111
|
27
|
23
|
17
|
ETB (end of trans. block)
|
结束传输块
|
0001 1000
|
30
|
24
|
18
|
CAN (cancel)
|
取消
|
0001 1001
|
31
|
25
|
19
|
EM (end of medium)
|
媒介结束
|
0001 1010
|
32
|
26
|
1A
|
SUB (substitute)
|
代替
|
0001 1011
|
33
|
27
|
1B
|
ESC (escape)
|
换码(溢出)
|
0001 1100
|
34
|
28
|
1C
|
FS (file separator)
|
文件分隔符
|
0001 1101
|
35
|
29
|
1D
|
GS (group separator)
|
分组符
|
0001 1110
|
36
|
30
|
1E
|
RS (record separator)
|
记录分隔符
|
0001 1111
|
37
|
31
|
1F
|
US (unit separator)
|
单元分隔符
|
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)
|
tast
判断下列逻辑语句的True,False.
1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 T
2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 F
2、求出下列逻辑语句的值。
1),8 or 3 and 4 or 2 and 0 or 9 and 7 8
2),0 or 2 and 3 and 4 or 6 and 0 or 3 4
3、下列结果是什么?
1)、6 or 2 > 1 6
2)、3 or 2 > 1 3
3)、0 or 5 < 4 True
4)、5 < 4 or 3 True
5)、2 > 1 or 6 True
6)、3 and 2 > 1 True
7)、0 and 3 > 1 0
8)、2 > 1 and 3 3
9)、3 > 1 and 0 0
10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 2
4. 简述变量命名规范
1.变量有字母,数字,下划线任意组合
2.变量不能以数字开头
3.不能是关键字
4.具有可描述性
5.不能是中文
6.不能过长
5. name = input(“>>>”) name变量是什么数据类型? 字符串
6. if条件语句的基本结构?
7.while循环语句基本结构?
8. 写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
count=0
sum=0
while count<99:
count += 1
if count % 2 ==1:
sum+=count
else:
if count==88:
continue
else:
sum-=count
print(sum)
count=0
sum=0
while count<100:
if count % 2 == 1:
sum+=count
else:
sum-=count
count+=1
else:# else的妙用
print(sum+88)
9. ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
i=0
usernamune=input('请输入你的名字:')
password=input('请输入你的密码:')
if username=='张三' and password=='123':
print('恭喜你登录成功')
break
else:
print('你输入的账号或者密码错误,您还剩余%s次输入机会' % (2-i))
i+=1
i=0
while i<3:
username = input('请输入你的名字:')
password = input('请输入你的密码:')
if username == '张三' and password == '123':
print('恭喜你登录成功')
break
else:
print('你输入的账号或者密码错误,您还剩余%s次输入机会' % (2 - i))
if i==2:
chice=input('您是否还想再试一次?/Y')
if chice=='Y':
i=-1
i += 1
else:#要多揣摩一次,为什么走else.
print('你还要脸不...')
三次登录,如果不成功,再给三次机会。6次机会用完,退出登录。
i = 0
a=0
while i < 3:
username = input('请输入你的名字:')
password = input('请输入你的密码:')
if username == '张三' and password == '123':
print('恭喜你登录成功')
break
a += 1
if a == 6:
print('您的次数已经用完...')
break
else:
print('你输入的账号或者密码错误,您还剩余%s次输入机会' % (2 - i))
if i == 2:
chice = input('您是否还想再试一次?/Y')
if chice == 'Y':
print('你还要脸不...')
i=-1
else:break
i += 1
10. 简述ascii、unicode、utf-8编码关系?
ascii:由字母,数字,特殊字符,用8位,1个字节表示1个字符
万国码:unicode:初期,用16位,2个字节表示1个字符
升级:用32位,4个字节表示1个字符 浪费资源
对unicode进行升级,utf-8
utf-8:由至少8位,1个字节表示1个字符
英文:用8位,1个字节表示1个字符
欧洲:用16位,2个字节表示1个字符
亚洲:用24位,3个字节表示1个字符
utf-16:由至少16位,2个字节表示1个字符
GBK:英文 用8位,1个字节表示1个字符
中文:用16位,2个字节表示1个字符。
11. 简述位和字节的关系?
8bites=1byte
1024bytes=1kb
1024kb=1MB
1024MB=1GB
1024GB=1TB
12. “⽼男孩”使⽤UTF-8编码占⽤⼏个字节?使⽤GBK编码占⼏个字节?
utf-8 表示中文,1个中文占3个字节,所以9
GBK 表示中文,1个中文占2个字节,所以6
13. 制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实
如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx
name=input('请输入你的名字:')
site=input('请输入你居住的地点:')
hobby=input('请输入你的爱好:')
msg='你的名字是%s,你居住的地点是%s,你的爱好是%s' %(name,site,hobby)
print(msg)
14. 等待⽤户输⼊内容,检测⽤户输⼊内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输⼊”,
并允许⽤户重新输⼊并打印。敏感字符:“⼩粉嫩”、“⼤铁锤”
while True:
msg = input('请输入你想搜索的内容:')
if '小粉嫩'in msg or '大铁锤'in msg: #要分开写 小粉嫩'or '大铁锤 系统会默认成1 or 1,也就是True
print('存在敏感字符,请重新输入')
# continue #while True 本身就是死循环,不用加continue去保持循环
else:
print(msg)
break
15. 单⾏注释以及多⾏注释?
单行注释用#
多行注释用''' '''
16. 简述你所知道的Python3和Python2的区别?
python2:源码不规范,混乱,重复代码多。
python3:重整源码。源码规范,优美,清晰,简单
python2:print '内容' print('内容')
python3:print('内容')
input() 相当于eavl()
python2:raw_input()
python3:input()
python2:默认ascii 在前面加 -*- encoding=utf-8 -*-
python3:默认utf-8
python2:有long
python3:全部是int
17. 看代码书写结果:
a = 1>2 or 4<7 and 8 == 8
print(a) #T
a = 1>2 or 4<7 and 8 == 8
F or T and T
F or T
T
print(a) #T
18.continue和break区别?
continue:结束本次循环,进行下一次循环
break:终止循环
Day3write from memory:
Bit,Bytes,Kb,Mb,Gb,Tb之间的转换关系。
8bite=1byte
1024byte=1kb
1024kb=1MB
1024MB=1GB
1024GB=1TB
Unicode,utf-8,gbk,每个编码英文,中文,分别用几个字节表示。
ascii:由字母,数字,特殊字符,用8位,1个字节表示1个字符
万国码:unicode:初期,a,中用16位,2个字节表示1个字符
升级:a,中用32位,4个字节表示1个字符 浪费资源
对unicode进行升级,utf-8
utf-8:由至少8位,1个字节表示1个字符
a:用8位,1个字节表示1个字符
欧洲:用16位,2个字节表示1个字符
亚洲:用24位,3个字节表示1个字符
utf-16:由至少16位,2个字节表示1个字符
GBK:a 用8位,1个字节表示1个字符
中文:用16位,2个字节表示1个字符。