Python学习 - 基础
目录:
windows
1. 通过官网下载Python安装包: https://www.python.org/downloads/
2. 安装下载的包, 一路next. 安装过程中可自定义安装路径等...
3. 为计算机添加安装目录到环境变量, 以 安装路径 -> "C:\Python36" 为例: 将"C:\Python36\bin"路径加入到系统环境变量path中.
4. 测试, 打开CMD命令行输入 python 命令, 返回如下信息即成功了
C:\Users\Administrator>python
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
如何在Winodws系统中同时安装Python2与Python3环境
1. 下载并安装 Python 2.x 和 Python 3.x 2. 找到 Python 2.x 的安装目录 C:\Python2x, 将 python.exe和pythonw.exe 分别重命名为 python2.exe 和 pythonw2.exe 3. 删除 C:\Python2x\Scripts\pip.exe 4. 找到 Python 3.x 的安装目录 C:\Python3x, 将 python.exe和pythonw.exe 分别重命名为 python3.exe 和 pythonw3.exe 5. 删除 C:\Python3x\Scripts\pip.exe 6. 右键我的电脑->选择属性->高级系统设置->环境变量, 在PATH系统变量中添加路径 C:\Python2x;C:\Python3x (中间分号隔开) 7. 在命令行中,可以通过 python2 和 python3 分别运行Python 2.x和Python3.x 进入各自的命令行 SP: 这里删除了各自版本的pip.exe, 因为默认有pip2.exe与pip3.exe在各自的Scripts, 在给 Python2 与 Python3 安装模块时各自调用自己版本的pip命令进行安装即可
linux、Mac
1. 通过官网下载Python安装包: https://www.python.org/downloads/ 选择适用于Unix/Linux的源码压缩包
2. 解压压缩包
3. 如果你需要自定义一些选项修改Modules/Setup
4. 执行 ./configure 脚本
5. make && make install
6. 执行以上操作后, Python会安装在 /usr/local/bin 目录中, Python库安装在/usr/local/lib/pythonXX, XX为你使用的Python的版本号
在linux 下创建一个文件叫hello.py,并输入
1 echo "print("Hello World!")" > hello.py
然后执行命令:python hello.py ,输出
1 python hello.py 2 3 Hello World!
指定解释器
上一步中执行 python hello.py 时, 明确的指出 hello.py 脚本由 python 解释器来执行.
如果想要类似于执行shell脚本一样执行python脚本, 例如: ./hello.py, 那么就需要在hello.py文件头部指定解释器, 如下:
1 cat hello.py 2 3 #!/usr/bin/env python 4 print "hello,world"
如此一来,执行: ./hello.py
即可。
ps:执行前需给予 hello.py 执行权限, chmod 755 hello.py
在交互器中执行
除了把程序写在文件里,还可以直接调用python自带的交互器运行代码,
1 C:\Users\Administrator>python3 2 Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AM 3 D64)] on win32 4 Type "help", "copyright", "credits" or "license" for more information. 5 >>>print("Hello World!") 6 Hello World! 7 >>>
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['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 name = "Kys"
上述代码声明了一个变量, 变量名为: name, 变量name的值为: "Kys", 他们的关系如下图
这时候如果执行下面代码, 猜猜结果是什么?
1 name2 = name 2 print(name, name2) 3 name = "Zy" 4 print(name, name2)
1 Kys Kys 2 Zy Kys
咦, name2 不是等价于 name 么, 为什么 name 的值改变后 name2 没有变化呢??
下图揭晓答案
所以说, 这个时候name指向的是Zy的内存地址, 而name2指向的还是Kys的内存地址.
多个变量的赋值
Python允许你同时为多个变量赋值. 例如:
1 a = b = c = 1 # 创建一个整型对象, 值为1, 三个变量被分配到相同的内存空间上
还支持为多个变量指定多个值. 例如:
1 a, b, c = 1, 2, "john" # 两个整型对象1和2的分配给变量 a 和 b, 字符串对象 "john" 分配给变量 c
变量的值交换
正常情况下, 如果我们想交换两个变量的值, 操作如下:
1 a = "hello" 2 b = "world" 3 print("a: %s\nb: %s" % (a, b)) 4 # 交换变量 a 与 b 的值 5 # 需要创建一个临时变量来保存 a b 其中一个变量的值 6 temp = a 7 a = b 8 b = temp 9 # 这样就完成了变量的交换 10 print("a: %s\nb: %s" % (a, b))
11 # 运行结果如下:
12 a: hello
13 b: world
14 a: world
15 b: hello
在python中, 提供了更简便的写法, 可以让你不用创建临时变量就可以交换两个变量的值.
a = "hello" b = "world" print("a: %s\nb:%s" % (a, b)) a, b = b, a # 这里等价于上面的 temp = a ; a = b; b = temp print("a: %s\nb:%s" % (a, b)) # 运行结果如下: a: hello b: world a: world b: hello
- 单行注视: # 被注释内容
- 可独占一行
- 可跟在代码后面
1 # 这是独占一行的注释 2 print("hello world!") # 这是跟在代码后的注释 3 4 # SP: 这里需要注意, 根据PEP8的规定, 5 # 独占一行的注释格式为: "#" + "一个空格" + "注释内容" 6 # 跟在代码后的注释格式: "两个空格" + "#" + "一个空格" + "注释内容" 7 # 当然你可以不遵循PEP8, 但个人建议, 从学习之处严格要求自己的代码规范, 是个很好的开始.
- 多行注释: """ 被注释内容 """
# 三个双引号, 或三个单引号都可以作为多行注释使用. ''' 注释内容 ''' print("hello, world") """ 注释内容 """ print("hello, world") # SP: 建议使用双引号.
1 #!/usr/bin/env python 2 3 #name = raw_input("What is your name?") # python 2.x 写法 4 name = input("What is your name?") # python 3.x 写法 5 print("Hello " + name )
输入密码时, 如果想要不可见, 需要利用 getpass 模块中的 getpass方法, 即:
1 #!/usr/bin/env python 2 3 import getpass 4 5 # 将用户输入的内容赋值给 pwd 变量 6 pwd = getpass.getpass("请输入密码:") 7 8 # 打印输入的内容 9 print(pwd)
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
Python程序语言指定任何非0和非空(None)值为True, 0 或者 None为False。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
1 if 判断条件: 2 执行语句…… 3 else: 4 执行语句……
其中"判断条件"成立时, 则执行后面的语句, 而执行内容可以多行, 以缩进来区分表示同一范围.
else 为可选语句, 当需要在条件不成立时执行内容则可以执行相关语句, 具体例子如下:
1 # Python3 2 3 user_input = input("Please enter 0 or 1\n>>: ").strip() 4 5 if user_input == "0": 6 print("you input num is 0") 7 else: 8 print("you input num is 1")
if 语句的判断条件可以用 >(大于), <(小于), ==(等于), >=(大于等于), <=(小于等于), !=(不等于) 等来表示期关系.
当判断条件为多个值时,可以使用以下形式:
1 # Python3 2 3 user_input = input("Please enter 0 - 5\n>>: ").strip() 4 5 if user_input == "0": 6 print("you input num is 0") 7 elif user_input == "1": 8 print("you input num is 1") 9 elif user_input == "2": 10 print("you input num is 2") 11 else: 12 print("you input num not in 0, 1, 2")
由于 python 并不支持 switch 语句, 所以多个条件判断, 只能用 elif 来实现, 如果判断需要多个条件需同时判断时, 可以使用 or(或), 表示两个条件有一个成立时判断条件成功, 使用 and(与), 表示只有两个条件同时成立的情况下, 判断条件才成功.
1 # Python3 2 3 # 例:if语句多个条件 4 5 num = 9 6 if num >= 0 and num <= 10: # 判断值是否在0~10之间 7 print('hello') 8 >>> hello # 输出结果 9 10 num = 10 11 if num < 0 or num > 10: # 判断值是否在小于0或大于10 12 print('hello') 13 else: 14 print('undefine') 15 >>> undefine # 输出结果 16 17 num = 8 18 # 判断值是否在0-5或者10-15之间 19 if (num >= 0 and num <= 5) or (num >= 10 and num <= 15): 20 print('hello') 21 else: 22 print('undefine') 23 >>> undefine # 输出结果
三元表达式
一些语言(如Java)的三元表达式形如:
判定条件?为真时的结果:为假时的结果
Python的三元表达式有如下几种书写方法:
1 a = '' 2 b = 'True' 3 c = 'False' 4 5 # 方法一:为真时的结果 if 判定条件 else 为假时的结果 6 d = b if a else c 7 print('方法一输出结果:' + d) 8 9 # 方法二:判定条件 and 为真时的结果 or 为假时的结果 10 d = a and b or c 11 print('方法二输出结果:' + d) 12 13 # 以上两种方法方法等同于if ... else ... 14 if a: 15 d = b 16 else: 17 d = c 18 print('if语句的输出结果:' + d) 19 20 # 执行结果 21 方法一输出结果:False 22 方法二输出结果:False 23 if语句的输出结果:False
说明:
判断条件:a为空串,所以判断条件为假
当判断条件为真时的结果:d = b
当判断条件为假时的结果:d = c
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
1 for iterating_var in sequence: 2 statements(s)
实例:
1 #Python3 2 3 # 第一个实例 4 for letter in 'Python': 5 print('当前字母 :', letter) 6 7 # 第二个实例 8 fruits = ['banana', 'apple', 'mango'] 9 for fruit in fruits: 10 print('当前水果 :', fruit) 11 12 print("Good bye!")
1 当前字母 : P 2 当前字母 : y 3 当前字母 : t 4 当前字母 : h 5 当前字母 : o 6 当前字母 : n 7 当前水果 : banana 8 当前水果 : apple 9 当前水果 : mango 10 Good bye!
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
1 while 判断条件: 2 执行语句……
执行语句可以是单个语句或语句块. 判断条件可以是任何表达式, 任何非零, 或非空(None)的值均为True, 当判断条件False时, 循环结束.
如果条件判断语句永远为 true, 循环将会无限的执行下去
PS: 不要在你的程序中出现无限循环...
执行流程图如下:
Gif 演示 Python while 语句执行过程
循环控制语句, break 与 continue
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句 | 描述 |
---|---|
break 语句 | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass 语句 | pass是空语句,是为了保持程序结构的完整性。 |
循环使用 else 语句
在 python 中, for … else 表示这样的意思, for 中的语句和普通的没有区别, else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行, while … else 也是一样
1 # Python3 2 3 for num in range(10,20): # 迭代 10 到 20 之间的数字 4 for i in range(2,num): # 根据因子迭代 5 if num%i == 0: # 确定第一个因子 6 j=num/i # 计算第二个因子 7 print('%d 等于 %d * %d' % (num,i,j)) 8 break # 跳出当前循环 9 else: # 循环的 else 部分 10 print(num, '是一个质数')
1 10 等于 2 * 5 2 11 等于 2 * 5 3 12 等于 2 * 6 4 13 等于 2 * 6 5 14 等于 2 * 7 6 15 等于 2 * 7 7 16 等于 2 * 8 8 17 等于 2 * 8 9 18 等于 2 * 9 10 19 等于 2 * 9