python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while
2017-05-10 23:47
901 查看
1Python前世今生
python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。最新的TIOBE排行榜,Python赶超PHP占据第五!!!为什么是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的对应关系和执行流程如下:2python安装
安装Pythonwindows:1
、下载安装包
https:
/
/
www.python.org
/
downloads
/
2
、安装
默认安装路径:C:\python27
3
、配置环境变量
【右键计算机】
-
-
》【属性】
-
-
》【高级系统设置】
-
-
》【高级】
-
-
》【环境变量】
-
-
》【在第二个内容框中找到 变量名为Path的一行,双击】
-
-
>【Python安装目录追加到变值值中,用;分割】
如:原来的值;C:\python27,切记前面有分号linux:
无需安装,原装Python环境
ps:如果自带
2.6
,请更新至
2.7
更新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个符号。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:即使有汉字也不需要写出指定的字符编码了。
五注释
单行注视:#被注释内容 多行注释:三个单引号'''或者三个双引号"""例如"""被注释内容""">>>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执行输出
相关文章推荐
- Python笔记第1章,流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用
- python 变量,数据类型,用户输入输出,流程控制,循环
- Python基础:数据类型、变量定义、输入/输出、逻辑、函数/模块(导入)/类、异常处理
- python基础-变量、数据类型、input、格式化、运算符、流程控制
- python学习笔记3—流程控制if、for、while
- python入门基础之用户输入与模块初认识
- 【Python基础】之不同的文件在不同目录下导入指定模块的方法
- Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数
- 黑马程序员—Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)
- Python流程控制(if,for,while)
- Python基础,基本类型(整型,浮点数等)数据结构(List,dic(Map),Set,Tuple),控制语句(if,for,while,continue or break):来自学习资料
- Python基础(一):变量,注释,if-else,关键字
- Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)
- python3之控制流程(if,while,for)
- Python--前端基础之JavaScript(JS的引入方式,JS的变量、常量和标识符,JS的数据类型,运算符,流程控制,JavaScript的对象)
- python入门基础之用户输入与模块初认识
- python 学习之流程控制if for while 及print 格式控制
- JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
- Python 第一章 基础知识(5) 获取用户输入
- Python_3_学习之路_(1)变量_用户交互_if_else___while__for