一、ptyhon 介绍
ptyhon语言是指Python的语言风格,和它自己的语法结构等,
python解释器是去解释并执行的一个软件,
- Cpython(最常用的版本)
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。 - Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。 - IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似) - PyPy(特殊)
Python实现的Python,将Python的字节码字节码再编译成机器码。 - RubyPython、Brython ...
二、python解释器的安装
window下的安装:
1下载安装,从www.python.org,下载安装python最新版本,最好下载python2版本和python3版本,注意下载python2和python3的安装路径,
在任何位置如果要找到Python2和3 ,就要在环境变量里设置,找到python.exe文件,
方法:计算机--属性--高级系统设置--环境变量--系统设置
找到script文件,添加script的路径,就可以调用pip命令,pip也可以多版本共存,
在Linux安装
1.在任何位置都能加载Python,
path临时改
永久改,vim--etc-prefile
或者重新登录,也可以生效。
python内部文件的执行
2。文件开头
制定绝对路径
#!usr/bin/env python ,绝对路径,换个平台,也可以使用
.执行脚本传入参数
Python内大量模块,可以使用类库有3中,
- Python内部提供的模块
- 业内开源的模块
- 程序员自己开发的模块
import是导入模块
3.关于pyc文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码
三、变量
程序的执行时一系列状态的变化,为了保存这种变化,变,反映程序的变化,量,反映程序的一种状态,
1.变量的声明与引用
name='egon' ,通过name这个变量名,引用变量的值。
变量的声明规则:
只能以字母开头,后面可以加数字,或者下划线,
关键字不能做变量名:
['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']
2.变量值的改变
变量值是可以改变的,在内存的地址不动,值在内存是被保存下来的,有Python指定对丢弃的值进行回收,
变量名与值之间是做了一个绑定关系,也可以解除绑定。
x=1
y=x 解除了与x 与1 的关系
或者用del x ,也可以解除x 与1的关系
name=1
name=2
name=1
name=2
3.输入与输出
Python3中,统一用input输入,python2中使用raw_input 和input输入,
name=input('请输入名字:')
print('name')
注意:
如果输入密码,为了不可见,可以导入getpass 模块
执行(在pycharm中无法执行,需要到终端中执行)
import getpass pwd=getpass.getpass('请输入密码:') print(pwd)
4.运算符
1.算数运算符
2.比较运算符
3.逻辑运算符
优先级排序,从高到低,(),not,and,or,
and注解:
- 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。
- 在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值。
- 如果布尔上下文中的某个值为假,则 and 返回第一个假值
or注解:
- 使用 or 时,在布尔上下文中从左到右演算值,就像 and 一样。如果有一个值为真,or 立刻返回该值
- 如果所有的值都为假,or 返回最后一个假值
- 注意 or 在布尔上下文中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值
and-or结合使用:
- 结合了前面的两种语法,推理即可。
- 为加强程序可读性,最好与括号连用,例如:
(1 and 'x') or 'y'
4.赋值运算符
5.位运算符
6.成员运算符
name ='uhh' if 'h' in name : print('ok') else: print('no')
7.身份运算符
a=1 b=1 print(a is b ) 返回Ture
8.运算符的优先级
9.bytes类型
Python3中内置类型bytes和str用法及byte和string之间各种编码转换
Python
3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python
3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然).
msg = '我' print(msg) print(msg.encode(encoding="utf-8")) 有字符串,转换成 字节码 print(msg.encode(encoding="utf-8").decode(encoding="utf-8")) 将字节码转换成字符串
我 b'xe6x88x91' 我