一、Python 简介
1.1 下载地址
https://www.python.org/downloads/
1.2 简介
Python 是一种计算机程序设计语言是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python 的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989 年圣诞节期间,在阿姆斯特丹,Guido 为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国 20 世纪 70 年代首播的电视喜剧《蒙提.派森干的飞行马戏团》(Monty Python's Flying Circus)
摘自——百度百科
1.3 Python 排行和使用场景
TIOBE 6 月编程语言排行榜 更新已发布,排名前三的依然是:Java, C, Python。
image.png
Python 可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用 Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、美团等。互联网公司广泛使用 Python 来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。
1.4 Python 种类
Jyhton Python 的 Java 实现,Jython会将 Python 代码动态编译成 Java 字节码,然后在 JVM 上运行转换后的程序
jpython 在执行的时候先经过词法分析,语法分析,然后由解释器编译成字节码,再有 java 编译成机器码,最后再有 CPU 读取机器码执行,而 pypy 则有解释器直接一步到位编译成机器码,因此 pypy 理论上速度更快。
Cpython Python 的官方版本,使用 C 语言实现,使用最为广泛,CPython 实现会将源文件(py 文件)转换成字节码文件(pyc 文件),然后运行在 Python 虚拟机上。
IronPython Python 的 C# 实现,并且它将 Python 代码编译成 C# 中间代码(与Jython类似)
PyPy Python实现的Python
其他实现方式:RubyPython、Brython、Pyobjc
1.5 Python 安装
- Linux 安装
linux 默认自带 python,但是 centos 和 redhat 的版本普遍比官方版本低很多,因此可以另外安装一个版本使用,步骤如下
# 先安装 gcc 编译器
~]# yum install gcc -y
# 解压 Python 安装包并编译安装,注意 P 大写
~]# tar xvf Python-3.6.8.tgz
~]# cd Python-3.6.8
Python-3.6.8]# ./configure
Python-3.6.8]# make && make install
# 查看版本
Python-3.6.8]# python36
Python 3.6.8 (default, Jul 1 2019, 06:56:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# 测试 Python
Python-3.6.8]# python3
Python 3.6.8 (default, Jul 1 2019, 06:56:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print ('hello world')
hello world
二、Python 编码
2.1 ASCII
American Standard Code for Information Interchange,美国标准信息交换代码。是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即 2**8 = 256,所以,ASCII 码最多只能表示 256 个符号,且不支持中文,图标如下
image.png
2.2 Unicode
统一码、万国码、单一码。是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2 个字节),即:2**16 = 65536
2.3 UTF-8
UTF-8 是对 Unicode 编码的压缩和优化,他不再使用最少使用 2 个字节,而是将所有的字符和符号进行分类:ascii 码中的内容用 1 个字节保存,欧洲的字符用 2 个字节保存,东亚的字符用 3 个字节保存…
2.4 编码间的转换
将 utf-8 或 gbk 格式的转换为 unicode,将 unicode 转换为其他编码称为 encode
decode 的作用是将其他编码的字符串转换成 unicode 编码
encode 的作用是将 unicode 编码转换成其他编码的字符串
image.png
三、注释
3.1 单行注释
# 注释内容
print ('hello') # 第一个注释
单行注释.png
3.2 夸多行注释
''' 注释内容 ''' 或 """ 注释内容 """,在 Python 中 '单引号' 和 "双引号" 没有区别
"""第一
行注释"""
print ('hello')
多行注释.png
四、pyc 文件
4.1 pyc 文件
执行 Python 代码时,如果导入了其他的模块即其他的 xx.py 文件,那么,执行过程中会自动生成一个与其同名的和 py 文件同名的 .pyc 文件,该文件就是 Python 解释器编译之后产生的字节码,代码经过编译可以产生字节码;字节码通过反编译也可以得到代码,即使删除该 py 文件之后 python 程序依然可以运行,因为 python 或优先读取 pyc 文件,但是假如手动修改了 pyc 文件,则 python 会重新读取 py 文件并重新生成新的 pyc 文件,因为 python 会内部判断,因此不需要也不能手动更改 pyc 文件
五、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' ]
5.1 声明变量
name = "rookie"
print (name)
5.2 变量赋值
a = "jerry"
b = "tom"
其结果是在内存开启了两个地址空间,a 和 b 分别表示这两个地址空间的内容
a = "jerry"
b = a
会开启一个地址空间,两个变量名将指向同一个内存地址进行调用
image.png
六、获取用户输入
6.1 取值
使用 raw_input ( python 2 版本 ) 的方法获取用户输入的字符串信息给一个变量,然后把变量打印出来,还有另外一种方法 input 只能获取数值
#/usr/bin/env python
# -*- coding:utf-8 -*-
name = raw_input("Please input yout name:") # 在 python 2 中 raw_input 获取的为字串,inpu 获取为数值
print "your name is:",name
在 python 3 中,没有了 raw_input,只有 input 方法,默然获取到的为字串,如果要获取数值,可以加上
int(input("请输入你想要输入的数字或内容:"))
6.2 输入密码
如果想要不可见,需要利用getpass 模块中的 getpass方法
#!/usr/local/python3
#
import getpass
password = getpass.getpass('请输入你的密码')
print (password)
注意:密码是隐藏的,而且运行时连输入密码的提示框都没有,可以在调试模式下看到详细内容
Warning: Password input may be echoed.
请输入你的密码asd
asd
七、Python 流程控制和缩进
7.1 if else 语句流程控制
进行判断用户输入,非 A 即 B,python 对缩进要求很严格,必须严格按照 4 个空格的方式进行排序,而且 if 下一级的代码必须与 if 保持 4 个空格换行间距,即父代码要与子代码严格区分,如果缩进不符合要求会报缩进错误: IndentationError: unindent does not match any outer indentation level
#!/usr/local/bin/python3
#
import getpass
name = input('请输入你的用户名: ')
passwd = getpass.getpass('请输入你的密码: ')
if name == 'rookie' and passwd == '123asd':
print ('欢迎,rookie')
else:
print ('你的用户名和密码错误')
7.2 if elif elif elif ... else
有N个判断条件,一次匹配一个条件
#!/usr/local/python3
#
name = input('请输入你的用户名: ')
if name == 'rookie':
print ('rookie')
elif name == 'jerry':
print ('jerry')
elif name == 'tom':
print ('tom')
else:
print ('用户名不正确')
网友评论