Python之路——基础知识
一、Hello World!
假设你已经安装好了Python, 那么在Linux命令行输入:
$python
将直接进入python。然后在命令行提示符>>>后面输入:
>>>print('Hello World!')
可以看到,随后在屏幕上输出:
Hello World!
二、解释器
如果想要类似于执行shell脚本一样执行python脚本,例:./hello.py ,那么就需要在 hello.py 文件的头部指定解释器
1
2
3
|
#!/usr/bin/env python print "hello,world" |
如此一来,执行: ./hello.py
即可。
ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py
三、内容编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ps:应该显示的告诉python解释器,用什么编码来执行源代码。(2.7 # -*- conding:utf- -*- 3.X 默认utf-8)
#!/usr/bin/env python # -*- coding: utf-8 -*- print "你好,世界"
四、注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
五、执行脚本传入参数
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
- Python内部提供的模块
- 业内开源的模块
- 程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
1
2
3
4
5
6
|
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print sys.argv |
六、 pyc 文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
七、变量
声明变量
1
2
3
4
|
#!/usr/bin/env python # -*- coding: utf-8 -*- name = "wupeiqi" |
上述代码声明了一个变量,变量名为: name,变量name的值为:"wupeiqi"
变量的作用:昵称,其代指内存里某个地址中保存的内容
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
- ['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']
#一个等号是赋值,两个等号是比较,!=表示不等于。
1
2
3
4
5
6
7
8
|
#!/usr/bin/env python # -*- coding: utf-8 -*- # 将用户输入的内容赋值给 name 变量 name = raw_input ( "请输入用户名:" ) # 打印输入的内容 print name 2.7中 raw_input |
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
1
2
3
4
5
6
7
8
9
10
|
#!/usr/bin/env python # -*- coding: utf-8 -*- import getpass # 将用户输入的内容赋值给 name 变量 pwd = getpass.getpass( "请输入密码:" ) # 打印输入的内容 print pwd |
九、流程控制和缩进
需求一、用户登陆验证
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#!/usr/bin/env python # -*- coding: encoding -*- # 提示输入用户名和密码 # 验证用户名和密码 # 如果错误,则输出用户名或密码错误 # 如果成功,则输出 欢迎,XXX! import getpass name = raw_input ( '请输入用户名:' ) pwd = getpass.getpass( '请输入密码:' ) if name = = "alex" and pwd = = "cmd" : print "欢迎,alex!" else : print "用户名和密码错误" |
需求二、根据用户输入内容输出其权限
1
2
3
4
5
6
|
# 根据用户输入内容打印其权限 # alex --> 超级管理员 # eric --> 普通管理员 # tony,rain --> 业务主管 # 其他 --> 普通用户 |
1
2
3
4
5
6
7
8
9
10
11
|
name = raw_input ( '请输入用户名:' ) if name = = "alex" : print "超级管理员" elif name = = "eric" : print "普通管理员" elif name = = "tony" or name = = "rain" : print "业务主管" else : print "普通用户" |
PS:外层变量,可以被内层变量使用; 内层变量,无法被外层变量使用。
十、while循环
1、基本循环
1
2
3
4
5
|
while 条件: # 循环体 #当循环到尾部时,判断条件是否True,如果是继续执行。 |
2、break
用于跳出当前循环,并且下面的代码不再执行。
1
2
3
4
|
while True : print "123" break print "456" |
3、continue
用于跳出本次循环,重新执行下一次循环。
1
2
3
4
|
while True : print "123" continue print "456" |
十一、编码、解码
#py2 # -*- conding:utf-8 -*- temp = "周杰伦" #utf-8 #解码,需要指定原来是什么编码 temp_unicode = temp.decode('utf-8') #编码,需要指定要变成什么编码 temp_gbk = temp_unicode.encode('gbk') #py3 自动转换utf-8 unicode gbk #py3 移除了python的unicode类型 temp = "周杰伦" #utf-8 temp_gbk = temp.encode('gbk') print(temp_gbk)
十二、运算符
#算术运算 + - * / % 取模运算 可用来判断奇偶 ** 幂 // 取整除 py2: 9/2 = 4 9/2 = 4.5(导入模块from __future__ import division) py3: 9/2 = 4.5 #比较运算 == 等于 != 不等于 <> 不等于(2) < > >= <= #赋值运算 = += -= *= /= **= %= //= #逻辑运算 and 与 or 或 not 非 #成员运算 in not in