python简介
Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。 Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构
Python 特点
-
1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
-
2.易于阅读:Python代码定义的更清晰。
-
3.易于维护:Python的成功在于它的源代码是相当容易维护的。
-
4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
-
5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
-
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
-
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
-
8.数据库:Python提供所有主要的商业数据库的接口。
-
9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
-
10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
Python解释器
1.Cpython
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上
1
|
程序----(c解释器)----(字节码)----(机器码)-----cpu |
2.Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
1
|
程序 - - - - (java解释器) - - - - (字节码) - - - - (机器码) - - - - - cpu |
3.IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
1
|
程序 - - - - (c #解释器)----(字节码)----(机器码)-----cpu |
4.PyPy(特殊)
Python实现的Python,将Python的字节码字节码再编译成机器码。
1
|
程序 - - - - (c #解释器)----(字节码)----(机器码)-----cpu |
-
pyc文件
-
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
-
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
python官网
Windows安装
Linux安装
-
#!/bin/bash
#install python3.6
yum -y install readline-devel
#修复bug
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1rc1.tgz
mkdir /usr/local/python3
tar -xvf Python-3.6.1rc1.tgz
cd Python-3.6.1rc1
./configure --prefix=/usr/local/python3
make
make install
ln -s /usr/local/python3/bin/python3 /usr/bin/
echo "python.2 write command----python"
python -V #显示默认安装版本
echo "python.2 write command----python3"
python3 -V #显示安装版本
-
交互
>>>print (name) #输出
>>>name = input("nanna:") #输入,显示交互
>>>import getpass #调用模块
>>>pqqq = getpass.getpass("请输入密码") #输入,不显示交换,需要调用变量
import getpass)
快捷键操作
- 注释多行 先标记多行 再 Ctrl +/
- 查看源码 ctrl + 鼠标左键点击命令
- 列模式 alt +鼠标左键
结束符号
- break 结束 跳出所有循环
- continue 结束当前循环继续下一次循环,针对for循环
- pass python站位 没有就会语法错误
- return 终止 针对函数,
- exit 返回编号含蓄 如 exit(0...)
- continue 跳出本次循环,执行下一次循环
变量声明要求
- 变量只能用.字母,数字,下划线任意组合,且变量开头不能是数字
- 关键字不能为变量
import keyword #
keyword模块,可以输出当前版本的所有关键字print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
数据类型
类型 | type | 创建方法 |
数字 | int | a = 1 |
字符串 | str | a = ("asv") 注:多个元素就是元组 |
元组 | tuple | b = ("asv","aed",21) |
列表(有序) | list | c = ["asv","aed",21] |
字典(无序) | dict | d ={"v1":"bb","v2":"b3"} |
数字
int 整型
- 32位系统 -2**31~~2**31-1 即-2147483648~2147483647
- 64位系统 -2**63~~2**63-1 即-9223372036854775808~9223372036854775807
>>>bin(10) 二进制
'0b1010'
>>> 10 默认十进制
10
>>> oct(10) 8进制
'0o12'
>>> hex(10) 16进制
'0xa' a表示10 b表示11 以此类推
Long 长整型 pytyon3没有
Float 浮点数 1个浮点数占8字节(64位) 浮点数:带有小数的整数)
布尔 (判断真或假 )
判断a列表是否存在元素
>>> a =['aa','cc']
>>> "bb" in a
True
>>> "dd" in a
False
字符串
strip移除空白
>>> msg14=" adf " #前后有空格
>>> print(msg14.strip()) #去掉左右空格,()内可加字符
adf
>>> print(msg14.rstrip()) #去掉右空格
adf
>>> print(msg14.lstrip()) #去掉右空格
adf
分割 split ????
-
>>>user_1 = "aex|sb123|9"
>>>v = user_1.split("|") #分割所有,以|为分开
>>>print (v)
['aex', 'sb123', '9']
>>>v = user_1.split("|",1) #分割第一个,从左边分割
>>>print (v)
['aex', 'sb123|9']
>>>v = user_1.rsplit("|",1)#分割第一个,从右边分割
>>>print (v)
['aex|sb123', '9']
长度 len(name)
按字符算 不是字节
>>> msg17=("abc ","aa") #多个元素显示元素个数,单个元素显示字符串个数
>>> print(len(msg17))
2
>>> msg17=("abc")
>>> print(len(msg17))
3
索引 name[2]
>>> name
[11, 'ad', 33]
>>> name[2]
33
切片 a[:3] 或a[3:]或a[3]
>>> msg="nihao 123"
>>> print(msg[1]) #范围 取位置1的值
i
>>> print(msg[2:5]) #:表示顺序延伸 范围 取位置2-4的值 顾头不顾尾不取位置4的值
hao
>>> print(msg[0:]) #:表示顺序延伸 范围 所有位置的值
nihao 123
>>> print(msg[0:-1]) #:表示顺序延伸 范围取值0到-2的值 顾头不顾尾不取位置-1的值
nihao 12
元组
- count统计元素出现的次数
- index 查找字符串(查找不到报错)
>>> t1 = (1,2,{"gg":"k3"}) #增加了字典
>>> t1
(1, 2, {'gg': 'k3'})
>>> t1[2]["gg"]=2
>>> t1
(1, 2, {'gg': 2})
列表
L = ["a",11,var]
dir(L) #查看L列表的能执行的命令
L.append(var) #增加,追加,var的值添加到L的中
L.insert(2,var) #插入, 指定追加,
在第二元素后增加varL.pop() #删除最后一个元素,并从list中删除之
L.remove(var) #删除,指定删除元素var 如有多个var 删除第一次出现元素var
L.count(var) #查看, 显示元素var出现个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序 反转排序
- 更新 a=['A','B'] a[1] = 'c' print(a) (结果 a = ['A','c'] )
字典
- dic = {'name':'alex','age':["aa","bb"],}
#查
print (dic.get('name')) #如果找不到name的vulue,返回None
print (dic.get('name',"null")) #
如果找不到name的vulue,指定返回null#增
dic['gender']='female'
#改
dic['name']='guolm' #改key
- dic['age'][0]='guolm' #改key中第一个value
#删
del dic['name']
字符编码
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。
Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每
个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位
来表示(2个字节),即:2 **16 = 65536
UTF-8 utF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将 所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个 字节保存,东亚的字符用3个字节保存
循环语句
if循环
格式:
- ...elif 条件:...else:...
交换判断
vi girl.py
#一次交换判断
#!/usr/bin/python
sex = input("input your gender: ")
if sex == "girl":
print ("i like you ")
elif sex == "man":
print ("Going to homesexual!...")
else:
print("I'm will very angry!")
for循环
for循环+if
如下是for循环写3次方法,注意格式
guolm = 23
for i in range(3):
g = int(input("guess your lucky number: ")) #int 把用户输入的字符串格式转换成数字格式
if g < guolm:
print ("please guess a big bigger")
elif g > guolm:
print ("please guess a little bit small")
else:
print("bingo!")
break
else:
print ("too many retrys!")
多层for循环
for i in range(1,10):
for j in range(1,10):
if j < 6:
continue #跳出当此循环继续下一次循环,针对for循环
print(i,j)
while循环
死循环
判断输入为数字 则跳槽,否则进行下一次循环
while True: #当条件为真 则:
salary = input("Your salary:") #交互
if salary.isdigit(): #判断为整数,则执行如下操作
salary = int(salary) #格式化数字
break #跳出所有循环
所有循环 else:
continue #跳出当此循环,进行下一次循环
指定次数循环
- 三次错误退出
- #!/usr/bin/python
#三次错误显示too many retrys并退出,三次内正确显示bingo并退出
guolm = 23 #23岁
#g = -1 #固定值,可以不加
i = 0
while i<3: #小于3次继续执行 否则退出
print ("i:",i) #显示输入次数
g = int(input("guess your lucky number: ")) #int 把用户输入的字符串格式转换成数字格式
if g < guolm:
print ("please guess a big bigger")
elif g > guolm:
print ("please guess a little bit small")
else:
print("bingo!")
break
i += 1 #意思是 i = i +1
else:
print ("too many retrys!")
----------------------------------------------------------------------------------------------