您的位置:首页 > 编程语言 > Python开发

python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while

2017-05-10 23:47 901 查看

1Python前世今生

python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。最新的TIOBE排行榜,Python赶超PHP占据第五!!!由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web等。注视:上述重点字体表示该公司主要使用Python语言开发

为什么是Python而不是其他语言?

C和Python、Java、C#等C语言:代码编译得到机器码,机器码在处理器上直接执行,每一条指令控制CPU工作其他语言:代码编译得到字节码,虚拟机执行字节码并转换成机器码再后在处理器上执行Python和CPython这门语言是由C开发而来  对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python10行代码可以解决,C可能就需要100行甚至更多.  对于速度:Python的运行速度相较与C,绝逼是慢了Python和Java、C#等  对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持  对于速度:Python在速度上可能稍显逊色所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

Python的种类

CpythonPython的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。JyhtonPython的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。IronPythonPython的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)PyPy(特殊)Python实现的Python,将Python的字节码字节码再编译成机器码。RubyPython、Brython...以上除PyPy之外,其他的Python的对应关系和执行流程如下:PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!

2python安装

安装Pythonwindows:
1
、下载安装包
https:
/
/
www.python.org
/
downloads
/
2
、安装
默认安装路径:C:\python27
3
、配置环境变量
【右键计算机】
-
-
》【属性】
-
-
》【高级系统设置】
-
-
》【高级】
-
-
》【环境变量】
-
-
》【在第二个内容框中找到
变量名为Path的一行,双击】
-
-
>【Python安装目录追加到变值值中,用;分割】
如:原来的值;C:\python27,切记前面有分号
linux:
无需安装,原装Python环境
ps:如果自带
2.6
,请更新至
2.7
http://www.cnblogs.com/liujianzuo888/p/5014847.html

更新Python

windows:直接卸载安装linux:Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
查看默认Python版本
  
1
、安装gcc,用于编译Python源码
  
2
、下载源码包,https:
/
/
www.python.org
/
ftp
/
python
/
3
、解压并进入源码文件
4
、编译安装
 
5
、查看版本
  
6
、修改默认Python版本
  
7
、防止yum执行异常,修改yum使用的Python版本
  

三第一句Python代码

在/home/dev/目录下创建hello.py文件,内容如下:
print"hello,world"
执行hello.py文件,即:
python/home/dev/hello.py

2.7与3.5区别1

2.7:print"a"与print("a")都可以3.5:只能用括号,否则报错print("a")

python内部执行过程如下:

python解释器程序入口指定

类似shell的#!/bin/bash上一步中执行python/home/dev/hello.py时,明确的指出hello.py脚本由python解释器来执行。如果想要类似于执行shell脚本一样执行python脚本,例:
./hello.py
,那么就需要在hello.py文件的头部指定解释器,如下:
#!/usr/bin/envpython

print"hello,world"
执行:.
/hello.py
即可。chmod755hello.py给予hello.py执行权限

四字符编码

ASCII

python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill)ASCII(AmericanStandardCodeforInformationInterchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即:2**8=256,所以,ASCII码最多只能表示256个符号。显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode缺点:浪费空间如果是字母特殊字符数字的话

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由16位来表示(2个字节),即:2**16=65536,注:此处说的的是最少2个字节,可能更多

UTF-8

一个汉字3个字节gbk1个汉字是2个字节UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...所以,python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:报错:ascii码无法表示中文
#!/usr/bin/envpython

print"你好,世界"

#!/usr/bin/envpython

#-*-coding:utf-8-*-

print"你好,世界"

2.7与3.5区别2

2.7:
#-*-coding:utf-8-*-需要在程序入口写,如果代码中有汉字的话。
3.5:即使有汉字也不需要写出指定的字符编码了。

五注释

  单行注视:#被注释内容  多行注释:三个单引号'''或者三个双引号"""例如"""被注释内容"""单引号和双引号在Python中的作用基本没区别,但是句子已经含有单引号之后必须再用双引号了多行注释三个单引号或者三个双引号比如要注释多行代码就三个引号引起了前面加#我的段落有好多行,我们就用比如我们有500行
>>>print'''

...dsafd

...dsfa

...dfsa

...'''

dsafd

dsfa

dfsa

六pyc文件

执行Python代码时,如果导入了其他的.py文件,那么,执行过程中会自动生成一个与其同名的.pyc文件,该文件就是Python解释器编译之后产生的字节码。ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。Py转pyc其实就是你的程序代码交给虚拟机转换成机器可以识别的二进制的过程。就是字节码转换不是编译过程为什么生成pyc文件缓存的问题。转换字节码的数据写到硬盘上,下次执行的时候不用翻译了。

七python变量

变量命名规则:

1变量名只能是字母、数字或下划线的任意组合2不能以数字开头3不能是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']

变量的赋值

#!/usr/bin/envpython
#-*-coding:utf-8-*-
name1="zhangsan"
name2="licsi"
图解
#!/usr/bin/envpython
#-*-coding:utf-8-*-

name1="wupeiqi"
name2=name1

八导入模块

模块导入是大大简化你的程序的可读性。比如1.py
#!/usr/bin/envpython

#_*_coding:utf-8_*_

import2.py

print("hello")
而2.py
#!/usr/bin/envpython

#_*_coding:utf-8_*_

print("world")
而执行python1.py结果是worldhello大家看到了吧,importxxx.py就是将这个文件的内容导入进来替换这个import行。

九获取用户输入

输入密码时,如果想要不可见,需要利用getpass模块中的getpass方法,即:
1#!/usr/bin/envpython
2#_*_coding:utf-8_*_
3__author__='Administrator'
4importgetpass
5i1=raw_input("username:")
6#i2=raw_input("passwd:")
7i2=getpass.getpass("passwd:")
8print("username:%spassword:%s")%(i1,i2)

2.7与3.5区别3

2.7:raw_input()等待输入3.5:input()。

九数据类型

1按照特征划分

  

2按照可变性划分

  

十、流程控制和缩进

if判断

IF简单判断

1#!/usr/bin/envpython
2#_*_coding:utf-8_*_
3__author__='Administrator'
4if1==1:
5print("\033[35;1mcomparesuccessed!!!\033[0m")
6else:
7print("\033[31;1mcomparefaild!!!\033[0m")
8
9
10
11#!/usr/bin/envpython
12#_*_coding:utf-8_*_
13__author__='Administrator'
14
15name=raw_input("\033[34;1mplsinputurusername:\033[0m")
16pwd=raw_input("\033[34;1mplsinputurpasswd:\033[0m")
17ifname=="alex"andpwd=="123":
18print("\033[35;1myes\033[0m")
19else:
20print("\033[31;1mno\033[0m")

if多层判断

1#!/usr/bin/envpython
2#_*_coding:utf-8_*_
3__author__='Administrator'
4
5inp=raw_input(">>>")
6ifinp=="1":
7print('1')
8elifinp=="2":
9print('2')
10else:
11print("other")
12
13

while循环

while条件:动作当条件一旦满足就不会再执行动作

while的退出循环方法1

例子:打印数字当数字为7则退出循环重点:利用了flag的布尔类型来做赋值控制。
1#!/usr/bin/envpython
2#_*_coding:utf-8_*_
3__author__='Administrator'start=1
4flag=True
5whileflag:
6print(start)
7ifstart==7:
8flag=False
9start+=1
10print("end")

continuebreak练习

continue是跳出本次循环,继续下次循环break是跳出本层循环
#!/usr/bin/envpython
#_*_coding:utf-8_*_
__author__='Administrator'

importtime
i=0
whilei<=10:
time.sleep(0.1)
i+=1
ifi==7:
continue
printi
print("end")
检测是否是跳出本层循环
1#!/usr/bin/envpython2#_*_coding:utf-8_*_3__author__='Administrator'4a=05b=06whilea<10:7whileb<3:8ifb==2:9break10b+=111printb12a+=113printa

十一、作业题

  

第一题:

1#!/usr/bin/envpython2#_*_coding:utf-8_*_3__author__='Administrator'45i=06whilei<=10:7time.sleep(0.1)8i+=19ifi==7:10continue11printi12print("end")

第二题:

1#!/usr/bin/envpython2#_*_coding:utf-8_*_3__author__='Administrator'45#1到100求和67j=08i=19whilei<=100:10j+=i11i+=112printj

其他方法linux命令行

  

第三题:

1#!/usr/bin/envpython2#_*_coding:utf-8_*_3__author__='Administrator'45#奇数求和6j=07i=18whilei<=100:9j+=i10i+=211printj

第四题:

1#!/usr/bin/envpython2#_*_coding:utf-8_*_3__author__='Administrator'4#偶数求和5j=06i=07whilei<=100:8j+=i9i+=210printj

第五题

1#!/usr/bin/envpython2#_*_coding:utf-8_*_3__author__='Administrator'45#奇数求和6j=07i=18whilei<=100:9j+=i10i+=211printj1213#偶数求和14k=015l=016whilel<=100:17k+=l18l+=219printk2021print(j-k)
第六题用户密码文件user.txt
  
锁文件lock.txt
liujianzuo程序文件login.py
1#!/usr/bin/envpython2#_*_coding:utf-8_*_3__author__='Administrator'4importgetpass5importsys6count=07whilecount<=3:8username=raw_input("plseinputusername:").strip()9iflen(username)==0:10print("\033[31;1musernamemustnotbeempty,plsinputagain!!!!!\033[0m")11continue12f=file("user.txt",'r')13lock=file("lock.txt",'r+')14name=[]15forlineinf:16user=line.strip().split(":")[0]17pwd=line.strip().split(":")[1]1819ifusername==user:20forlo_lineinlock:21lock_user=lo_line.strip().split(":")[0]22#lock_count=lo_line.strip().split(":")[1]23ifusername==lock_user:24exit("\033[31;1myouraccounthasbeenlocked,ifyouwanttouseuraccount,plsconnectadministrator!!\033[0m")25else:2627whileTrue:28password=raw_input("plseinputpasswd:").strip()29iflen(password)==0:30print("\033[31;1mpasswordmustnotbeempty,plsinputagain!!!!!\033[0m")31continue32else:33break34ifpassword==pwd:35exit("\033[32;1mwelcometooursystem!!!!!\033[0m")36else:37count+=138ifcount==3:39lock.write("\n%s"%username)4041sys.exit("\033[31;1myouraccountwillbelocked,ifyouwanttouseuraccount,plsconnectadministrator!!\033[0m")42lock.close43print("\033[33;1musernameorpasswordhasbeen\033[0m\033[31;1m%serrortime\033[0m,\033[33;1myoujusthave\033[0m\033[31;1m%schances\033[0m")%(count,3-count)44name.append(user)45else:46ifusernamenotinname:47print("\033[35;1mnothatusername!!\033[0m")48continue
  执行输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐