Python编程语言介绍
1、编程的目的?什么是编程?什么是编程语言?
(1)编程的目的:计算机的发明和使用,就是为了用计算机去代替人工,去解放人类;编程的目的就是将人的思想流程化,并且以一种能够被计算机识别的模式,让计算机能够像人脑那样去工作,去自动执行的效果;
(2)编程:编程就是程序员,为达到或者说实现某种操作,将自己的思想流程或者说逻辑,根据某种语言的语法规定编写下来的过程;
(3)编程语言:编程语言即是能够被计算机识别的语言,编程语言是程序员和计算机沟通的媒介。目前主流编程语言:C、C#、Java、go、ruby、PHP、python。
2、编程语言的发展历史
(1)机器语言:计算机直接能够识别的语言,用二进制进行编程,直接操作硬件;
(2)汇编语言:用英文标识符取代二进制去编程,也是直接操作硬件;
(3)高级语言:用人类的字符去编写程序,运行时是先将它编译成计算机能够读懂的二进制后,再运行(编译型、解释型)。
1>编译型与解释型的区别:
编译型语言,在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了;
解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。
2>编译型与解释型的优缺点:
编译型:优点——运行速度快,代码执行效率高,运行后代码不可修改,保密性好;
缺点——代码经过编译后才可运行,移植性差,只能在兼容的系统上运行。
解释型:优点——移植性好,只要有解释环境,可在不同的操作系统上运行;
缺点——运行需要解释环境,运行效率低,占用资源多。
开发语言:
高级语言:java python ruby C# 生成的是字节码;优缺点:开发效率高、运营效率低;
低级语言:C 汇编语言 生成的机器码;优缺点:开发效率低、运营效率高;
C语言:要在开发路上走的更远,一定要学习C语言,开发底层的东西;
语言之间的对比:
PHP类:适用于写网页,局限性
Python Java: 及可以写网页也可以写后台功能
- Python执行效率低,开发效率高
- Java执行效率高, 开发效率低
Python种类:
JPython
IronPython
JavaScriptPython
RubyPython
CPython **********
...
pypy 这是用CPython开发的Python 目前Python执行速度最快的版本
3、python语言简介
python语言的作者是吉多·范罗苏姆。1989年圣诞节期间,他开始书写能够解释python语言语法的解释器;最新的TIOBE排行榜,python赶超PHP,占据第四位;python就属于解释型,目前的版本有——cpython、jpython、ironpython、pypy、rubypython,我们用的就是cpython。
python版本有python2和python3,目前用的较多的是python3。
4、python开发环境安装(python2、python3)
(1)下载软件 ,官网地址:https://www.python.org/downloads/,以Windows操作系统为例:
(2)配置环境变量:将C:\Python36及C:\Python36\Scripts加入到环境变量中path中去,用;做分隔;
(3)测试是否安装成功:Windows+R;cmd;python3/python2;运行成功进入交互模式;交互模式的优点就是方便测试代码正确性,但是无法存储代码,而脚本文件可永久保存代码。
建议:安装在根目录下,这样以后在安装插件的时候容易找到! windows: 直接点就行;Linux:系统自带;
5、编写第一个程序
print("hello world!")
6、编码
(1)ASCII码:是美国标准信息交换代码的缩写,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。1字节=8位;
(2)Unicode:随着计算机的快速发展和普及,显然ASCII已经无法显示世界上各国家的符号和文字,这个时候就出现了Unicode,至少用16位,2个字节,来表示对应关系,但是它只是代表对应关系,而非真正的用它去实现存储;这样会造成内存空间的浪费;这个时候就出现了utf-8;
(3)UTF-8:能用多少表示就用多少表示,可以理解为是对Unicode的缩减,它至少用1个字节表示,最多用3个字节,中文3个字节;
(4)gbk:是针对亚洲国家文字做的对应关系,中文用2个字节。
注意:python2的解释器编码默认的是ASCII,而python3解释器编程默认为utf-8;可通过 -*- coding = UTF-8 -*-设定解释器编码为utf-8,Python无需关注。
内存中用的编码都是Unicode编码;保证不乱码的条件:用什么编码存,就用什么编码取;
ASCII——GB2312(1980年7445个字符)——GBK(1995年扩展了21886个)——GB18030(2000年收录27484个)——Unicode——utf-8
7、IDE—python的安装和使用
8、输入输出
(1)输入:input;示例—— name = input("我的名字叫: ") python3中是input,用户输入任意值,最终都存成字符型,而python2中raw_input和python3的input效果一样。永远等待,直到用户输入一个值!input输入的类型全部都是字符串类型!
(2)输出:print(name)
(3)注释:当代码成千上万行时,需要对难理解的部分做注释,单行注释用#,多行注释用'''''' “”“”“”;代码注释可以是中文或者英文,但是不能用拼音。Python解释器碰到注释,不执行。
9、变量
(1)什么是变量:变是‘’变化‘’,量是反映某种状态
(2)格式
变量名 = 值
(3)变量的命名规则:
1>变量名只能是字母、数字、下划线的任意组合;
2>变量名不能以数字开头;
3>变量名不能是python的关键字。
(4)变量名定义方式:
1>驼峰式:OldBoy = "alex";
ClassName = “一年级三班”
2>下划线式:old_boy = "吴佩奇"
(5)注意点:变量名不宜过长;不要是中文;要有意义;
(6)定义变量三要素:value、type、id;
1>value:用来表示状态,用变量名来取变量值;
2>type:用来表示类型,有数值型、字符型等;
3> id:变量值的id号。
注意:==比较的是变量的值——value;is比较的是变量的id;id相同,value和type肯定相同,value相同,type相同,但是id可能不同。
(7)文件头
#!/usr/bin/env python
-*- coding: utf-8 -*-
10、基本数据类型
(1)整型 int 例如:age = 18 # age = int(18);
(2)浮点型 float 例如:salary = 3.1 # salary = float(3.1);
(3)字符串类型 例如: name = "张飞" 加了引号的就是字符串类型,引号可以是‘’,也可以是“”,还可以是''' ''',但是当是多行注释的时候必须用''' ''';
数值型可以进行加减乘除运算,而字符串型值只能进行‘’+‘’运算和‘’*‘’运算;
(4)布尔型 True/False 例如 flag = True;
(5)列表
用[ ]存放n个任意类型的值,且用逗号隔开; 例如: ["name", "sex", 32];
列表可以嵌套列表,也可以嵌套字典;列表可以用索引进行取值;
(6)字典
在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型;
字典取值用的是key;
(7)元组
元组可以被理解为不可变的列表;
(8)可变类型:在id不变的情况下,value可变,可以理解为是可变类型,例如:字典、列表;
不可变类型:value改变,id也跟着改变,称为不可变类型,意味着创建了新的内存空间;
11、占位符
(1)%s :字符串占位符,可以接收字符串,也可以接收数字;
%d :数字占位符,只能接收数字;
print("your name is %s , your age is %d" %("张飞", 18))
(2)format
print("your name is {} , your age is {}".format("李白", 30))
12、流程控制
(1) if
(2)if.....else......
(3)if......elif......elif......else.......
符合条件不需要操作时,用pass 代指空代码 无意义 仅仅表示代码块
注意:n1 = "alex"赋值
n1 == "alex"判断
13、循环
(1)while循环 continue、 break、 falg = True的用法;
(2) for循环;
(3)死循环;
(4)循环嵌套;
14、字符串
加法:
n1 = "alex" n2 = "sb"
n3 = n1 + n2
乘方: n4 = n1 * 10
15、数字
加减乘除 都有
%整除取余 **乘方
//整除 /带小数的除
16、文件后缀名
后缀名看似可以是任意,但是若后缀名不是py,导入模块时,一导入就报错;
以后文件名后缀全是py;
17、Python解释器的两种执行方式
Python解释器 py文件路径
Python进入解释器 实时输入内容并获得结果
18、程序中全是英文 Python2 Python3 无所谓
若是出现中文之后,因为Python2中默认使用ascii码执行代码,会出现错误,这个时候要指定编码==》》-*- coding:utf8 -*-
19、练习题
#输出1-10 除了7
count =0while count < 10:
count+= 1
if count != 7:print(count)#求1-100的所有数的和
count =0
sum=0while count < 100:
count+= 1sum+=countprint(sum)#输出1-100内所有奇数
count =0while count < 100:
count+= 1
if count % 2 ==0:pass
else:print(count)#输出1-100内所有偶数
count =0while count < 100:
count+= 1
if count % 2 ==0:print(count)else:pass
#求1-2+3-4+5-6....99的所有数的和
count =0
sum=0while count < 99:
count+= 1
#print(count)
if count % 2 !=0:
sum+=countelse:
sum-=countprint(sum)#用户三次登录
count =0whileTrue:
name= "alex"pwd= "abcd1234"
if count < 3:
input_name= input("请您输入账户名:").strip()
input_pwd= input("请输入密码:").strip()if input_name == name and input_pwd ==pwd:print("登录成功!")break
else:
count+= 1
print("登录%s失败!请重新输入!"%(count))else:print("次数已达三次,退出登录权限!")break
20、while....else.....
1 count = 0
2 while count < 10:3 print(count)4 count += 1
5 else:6 print("else")
21、continue、break
continue:终止当前循环,开始下次循环;
break:终止所有循环;
==========================================================================
补充内容:
一、编码问题
ASCII:码只能表示英文字符,不能兼容中文,这个时候就出了Unicode;
Unicode:默认是一个字符,由两个字节表示,无论是英文字母,还是中文,这会浪费很多空间,这个时候就出现了可变长度的字符编码,它是对Unicode的压缩——utf-8;
utf-8:可变长度的字符编码,它是英文用1个字节表示;欧洲的字符用2个字节表示;中文用3个字节表示;
二、#!/usr/bin/env python
只有在Linux环境下才有用,它的作用是文件被当作可执行文件时,用配置的环节变量中的Python解释器去运行该文件;
三、#-*- coding: utf-8 -*-
python3中默认的编码就是utf-8,所以不用担心中文编码乱码的问题,但是Python2中,默认的编码为ASCII码,遇到中文会乱码,因此需要特定指定编码方式,需要加上
#-*- coding: utf-8 -*-
四、注释及''' '''的作用
#单行注释
''' '''、""" """、多行
同时多行注释,也可以打印多行内容
1 name = "中国"
2 print(name)3 mss = 'ddddefewfwefw\nwefwfwefewfewf\n wefwefwefwfef'
4
5 print(mss)6 msg = """
7 name = "alxe"8 age = 109 """
10 print(msg)
五、变量定义的规则——见名知意
1、字母数字下划线,不能是特殊字符;2、不能数字开头;3、不能是关键字;
六、格式化输出的几种方式
#!/usr/bin/env/python
#-*- coding:utf-8 -*-
#author: zhangliang
name = input("name>> ")
age = int(input("age>> "))
sex = input("sex>> ")
# 格式化输出1
info = """
name: %s,
age: %d,
sex: %s
"""%(name, age, sex)
# 格式化输出2
info = """
name: {_name}
age: {_age}
sex: {_sex}
""".format(_name = name, _age = age, _sex = sex)
print(info)
# 格式化输出3
info = """
name: {0}
age: {1}
sex: {2}
""".format("alex", 33, "male")
print(info)
六、getpass隐藏密码输入内容
注意:在pycharm中没法实现,可以在控制台进行测试
import getpass
pwd = getpass.getpass("密码是》》》 ")
print(pwd)
七、pyc文件
是对python源文件进行预编译的过程,先预编译成字节码,然后再由解释器进行解释,若是pyc文件已经存在,系统会对比,源文件时间和pyc文件的时间,看是否需要再进行预编译。