Python学习 - 基础

目录:

一. Python的安装

二. Hello World程序

三. 变量

四. 注释

五. 用户输入

六. 流控语句之 if 判断

七. 流控语句之 for 循环

八. 流控语句之 while 循环

一.  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的版本号

 

 

二. Hello World程序

在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)

 

六. 流控语句之 if 判断

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:

Python程序语言指定任何非0和非空(None)值为True, 0 或者 None为False。

Python 编程中 if 语句用于控制程序的执行,基本形式为:

1 if 判断条件:
2     执行语句……
3 else4     执行语句……

其中"判断条件"成立时, 则执行后面的语句, 而执行内容可以多行, 以缩进来区分表示同一范围.

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

 

七. 流控语句之 for 循环

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!
执行结果

 

八. 流控语句之 while 循环

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
执行结果

 

posted @ 2017-02-19 23:17  泡沫初夏  阅读(242)  评论(0编辑  收藏  举报