print('hello world')
1,运行python代码。
在d盘下创建一个t1.py文件内容是:
打开windows命令行输入cmd,确定后 写入代码python d:t1.py
您已经运行了第一个python程序, 即:终端---->cmd-----> python 文件路径。 回车搞定~
2,解释器。
上一步中执行 python d:t1.py 时,明确的指出 t1.py 脚本由 python 解释器来执行。
如果想要类似于执行shell脚本一样执行python脚本,例: ./t1.py
,那么就需要在 hello.py 文件的头部指定解释器,如下:
#!/usr/bin/env python print "hello,world"
如此一来,执行: ./t1.py
即可。
ps:执行前需给予t1.py 执行权限,chmod 755 t1.py
3,内容编码。
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)
|
删除
|
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
1 #!/usr/bin/env python 2 print "你好,世界"
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 print "你好,世界"
4,注释。
单行注释#:#注释的内容
多行注释''' ''':''' 内容'''
5,变量
变量就是将一些的运算结果暂时存放在内存中,以便后续代码调用。
5.1 声明变量
1 #!/usr/bin/env python 2 3 # -*- coding: utf-8 -*- 4 5 6 name = "taibai"
5.2 变量的定义规则
1、必须由字母,数字,下划线任意组合,且不能由数字开头
2、不能是python的关键字
PS:python关键字
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec','finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
3、变量具有可描述性
4、变量不能是中文
5.3推荐定义方式
1 #驼峰体 2 3 AgeOfman = 88 4 5 NumberOfStudents = 80 6 7 #下划线 8 9 age_of_man = 88 10 11 number_of_students = 80
5.4变量的赋值
name = 'job' age = 'IT'
6.常量
常量既不变的量,如圆周率 Π
常量的命名,全部用大写,如BIR_OF _CHINA='1949'
7.程序交互 input
# 将用户输入的内容赋值给 name 变量 name = input('请输入用户名') # 打印输入的内容 print (name)
1、等待输入
2、将你输入的值赋给前边的变量
3、input数据类型str type(name)
8、基础数据类型(初始)
在每个编程语言里都会有一个叫数据类型的东西,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中常用的数据类型有多种,今天我们暂只讲3种, 数字、字符串、布尔类
8.1 int 整数类型
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
注意:在python3里不再有long类型,全是int类型
1 a = 2**64 2 print(type(a))
8.2 字符串类型 str
python中凡是加引号括起来的都是字符串。
1 name = "job" #双引号 2 age = '22' #只要加引号就是字符串 3 age = 22 # int 4 msg = '''my name is job,i am 22 ''' 5 6 #单双引号没有任何区别
字符串的拼接
‘+’ 简单拼接
注意:字符串拼接只能和字符串进行,不能和数字,其他类型进行拼接
1 name = "job" #双引号 2 age = '22' #只要加引号就是字符串 3 4 print(name+age) #job22
'*' 多次复制
1 name = "job" #双引号 2 age = 3 # int 3 print(name*age) #jobjobjob
8.3、布尔值(True,False)。
布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断
1 a = 3 2 b = 5 3 print(a>b) #不成立False,假 4 print(a<b)#成立True,真
9、流程控制之--if。
假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。
if...else 语句
单分支
if 条件: 满足条件后要执行的代码
if 4 > 5:
print('我请你喝酒')
双分支
1 """ 2 if 条件: 3 满足条件执行代码 4 else: 5 if条件不满足就走这段 6 """ 7 8 if 4 > 5: 9 print('我请你喝酒') 10 else: 11 print('喝么子酒')
多分支
回到流程控制上来,if...else ...可以有多个分支条件
1 ''' 2 if 条件: 3 满足条件执行代码 4 elif 条件: 5 上面的条件不满足就走这个 6 elif 条件: 7 上面的条件不满足就走这个 8 elif 条件: 9 上面的条件不满足就走这个 10 else: 11 上面所有的条件不满足就走这段 12 ''' 13 14 num = input('请输入您猜的数字:') 15 16 if num == '1': 17 print('一起抽烟') 18 elif num == '2': 19 print('一起喝酒') 20 elif num == '3': 21 print('新开了一家,走看看') 22 else: 23 print('你猜错了.....')
10、流程控制之while循环
1 while 条件: 2 3 # 循环体 4 5 # 如果条件为真,那么循环体则执行 6 # 如果条件为假,那么循环体不执行
循环中止语句
- break用于完全结束一个循环,跳出循环体执行循环后面的语句
- continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
break
1 count = 0 2 while count <= 100 : #只要count<=100就不断执行下面的代码 3 print("loop ", count) 4 if count == 5: 5 break 6 count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0 7 8 print("-----out of while loop ------")
continue
1 count = 0 2 while count <= 100 : 3 count += 1 4 if count > 5 and count < 95: 5 continue 6 print("loop ", count) 7 8 print("-----out of while loop ------")
while.....else
与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句
while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
1 count = 0 2 while count <= 100 : #只要count<=100就不断执行下面的代码 3 print("loop ", count) 4 # if count == 5: 5 # break 6 count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0 7 else: 8 print('循环执行完毕') 9 10 print("-----out of while loop ------")
如果执行过程中被break啦,就不会执行else的语句啦
1 count = 0 2 while count <= 100 : #只要count<=100就不断执行下面的代码 3 print("loop ", count) 4 if count == 5: 5 break 6 count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0 7 else: 8 print('循环执行完毕') 9 10 print("-----out of while loop ------")
1、使用while循环输入 1 2 3 4 5 6 8 9 10
1 count = 0 2 3 while count < 10: 4 count += 1 5 if count == 7: 6 continue 7 print('loop',count)
2、求1-100的所有数的和
i = 1
j = 0
while i <= 100:
j = j + i
i += 1
print(j)
3、输出 1-100 内的所有奇数
1 i = 1 2 3 # while i < 100: 4 # i += 1 5 # if i % 2 == 1: 6 # print(i) 7 8 # while i < 100: 9 # if i % 2 == 1: 10 # print(i) 11 # i += 1 12 13 14 while i < 100: 15 print(i) 16 i += 2
4、输出 1-100 内的所有偶数
i = 1 while i < 100: if i % 2 == 0: print(i) i += 1 while i < 100: print(i) i += 2
5、求1-2+3-4+5 ... 99的所有数的和
1 count = 0 2 j = 1 3 while j < 100: 4 if j % 2 == 0: 5 count = count - j 6 else: 7 count = count + j 8 j += 1 9 print(count)
6、用户登陆(三次机会重试)
i = 0 while i < 3: username = input('请输入用户名:') password = input('请输入密码:') if username == '小强哥' and password == 'q123': print('成功登陆') break else: print('账号或密码错误,请重新登陆') i += 1