python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
目前Python主要应用领域:
编译型
一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
解释型
良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。但性能不如编译型。
动态类型语言
动态类型语言:是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。
静态类型语言
静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型。
强类型定义语言
强类型定义语言:强制数据类型定义的语言。不经过强制转换,那么它就永远是这个数据类型了。
弱类型定义语言
弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
1、下载安装包 https://www.python.org/downloads/ 2、安装 默认安装路径:C:\python27 3、配置环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 如:原来的值;C:\python27,切记前面有分号
Linux和Mac下自带。
# 声明解释器 #!/usr/bin/env python print "显示输出内容"
python不要声明数据类型,只要经过复制自带判断数据类型。
# 变量赋值 name = "Alex Li" # 但是当出现中文时需要指定字符编码解析:字符编码UTF-8。 #_*_coding:utf-8_*_
ASCII : 语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。 GB2312 : 一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。 GBK1.0 : 收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。 GB18030: 取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。 Unicode :万国码、每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。注:此处说的的是最少2个字节,可能更多。 UTF-8 : 对Unicode编码的压缩和优化。将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),报错:ascii码无法表示中文。
#!/usr/bin/env python ## 指定编码类型为UTF-8 # -*- coding: utf-8 -*- print "你好,世界"
明文输入
### python 2.x name = raw_input("What is your name?") ### python 3.x name = input("What is your name?") print("Hello " + name )
密文输入
#!/usr/bin/env python # -*- coding: utf-8 -*- import getpass # 将用户输入的内容赋值给 name 变量 pwd = getpass.getpass("请输入密码:") # 打印输入的内容 print(pwd)
#!/usr/bin/env python # -*- coding: utf-8 -*- ### 导入的模块:sys import sys print(sys.argv) #### 测试脚本输出 $ python test.py helo world ['test.py', 'helo', 'world'] #把执行脚本时传递的参数获取到了 ### 模块:os import os os.system("df -h") #调用系统命令 ### 可以对模块解析结合:os、sys import os,sys os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行
print(sys.path) 可以查看python环境变量列表。
当python程序第一次运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程(第一次运行)。
pyc文件其实是PyCodeObject的一种持久化保存方式。
int(整型):
long(长整型):
float(浮点型):
complex(复数):复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
布尔值:真或假、1 或 0
字符串:
name = "alex" print "i am %s " % name #输出: i am alex ### 字符串是 %s;整数 %d;浮点数%f
# 定义变量 name="YGB" print("name=",name) name1=name print("name1=",name1) name="WBD" print("name=",name,"name1=",name1) """ name赋值,name的值赋予name1,当name的值被改变,那么name1的值也不会改变。 当name的值被改变,name就会指向一个崭新的内存位置,name1为原理内存。 """ age=24 # 字符串拼接:+ ;的拼接方式会开辟好几块内存,效率低。 info='''我爱的人:'''+name+'''他爱的人:'''+name1 info1='''大家爱的人:%s -- 那个憨憨的人:%s''' % (name,name1) info1='''大家爱的人:%s -- 今年贵庚:%d -- 那个憨憨的人:%s''' % (name,age,name1)
### 字符串拼接,拼接过程需要对应数据类型(创建多块内存) info = '''名字:'''+ name +'''年龄:'''+ age ### 这个输出顺序必须一致:%s接收字符串,%d接收整数,%f接收浮点类型 info = '''名字:%s,年龄:%s'''%(name,age) ### 现在多数使用该方法拼接 info = '''名字:{_a},年龄:{_b}'''.format(_a=name,_b=age) info = '''名字:{0},年龄:{1}'''.format(name,age)
info='''aaa={_name},bbb={_age},ccc={_name1}'''.format(_name=name,_age=age,_name1=name1) info='''AAA={0},BBB={0},CCC={1},DDD={2}'''.format(name,age,name1) print(info)