Python 入门
一:编程语言
1:语言:语言是一种事物与另外一种事物沟通的介质。
SO 编程语言就是程序员与计算机沟通的介质。
那什么又是编程呢?
所谓的编程就是 程序员用一种计算机所能理解的方式(即编程语言)把自己的逻辑思维写下了。 编程的结果就是一堆文件
为什么要编程呢?
就是让计算机按照人的逻辑来执行程序, 来取代人力, 说白了就是让计算机去做人的奴隶
2:编程语言的分类:
编程语言分为:机器语言, 汇编语言 , 高级语言
机器语言:用二进制指令编程,直接操作硬件。
优点:执行效率高。
缺点:开发效率低,学习难度高。
汇编语言:用英文标签代替二进制指令,本质也是直接操作硬件
优点:执行效率高。
缺点:开发效率低,学习难度高。
高级语言:用人类的字符去编写程序,人类的字符计算机无法理解,必须经过翻译,翻译成机器语言(二进制),计算机才能执行。
高级语言又分为编译型与解释型。
编译型:只编译一次,拿到结果可以重复执行,无需重新编译。(代表C语言, C++等)
编译的工具:GCC,相当于谷歌翻译。
编译过程:
先翻译:程序----》GCC----》机器语言
后执行: 机器语言---》CPU
优点:执行效率高(一次翻译,翻译后的结果可以重复使用,不需重复翻译)。
缺点:调试程序麻烦(一旦出错,必须要全部重新编译,开发效率低),跨平台性差。
解释型:解释一行,执行一行,即边翻译边执行。(代表python, java等)
编译的工具:解释器,类似于同声传译。
执行过程:程序----》解释器-----》机器语言-----》CPU
优点:调试程序方便(一旦出错,只需更改一行,无需全部更改),跨平台性高,开发效率高。
缺点:执行效率低
编程语言的对比:
学习难度:从高到低(机器语言>汇编语言>高级语言)
执行效率:从高到低(机器语言>汇编语言>高级语言)
开发效率:从低到高(高级语言>汇编语言>机器语言)
PS:执行效率不是关键(瓶颈理论),开发效率高才是王道,所以高级语言是大多数编程者的选择。
PYTHON
Python崇尚优美、清晰、简单,是一个优秀并广泛使用的编程语言。
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
一:PYTHON 有两种运行方式:
一种是 进入解释器的交互式模式:调试方便,但是无法永久保存代码
另外一种 脚本文件的方式(如使用nodpad++ 演示:)可以永久保存代码
强调:python解释器执行程序是解释执行,即打开文件读内容,因此文件的后缀名没有硬性限制,但是通常定义为 .py结尾。
PYTHON执行过程(重点):
先启动PYTHON解释器---》将程序代码读入内存----》CPU解释执行
二:变量
变量是一种可以反映出状态变化的一种机制
语法:
变量名=值 (变量名是对值得引用)
变量的命名规范:
1:变量名只能是字母、数字、或下划线的任意组合
2:变量名的第一个字符不能是数字
3:关键字不能作为变量名 (例如,print,if, else, while 等等)
变量有两种定义方式;
驼峰体:
yourname=oldboy
下划线:
your_name=oldboy
为了方便起见一般是用下划线体。
定义变量名不好的方式:
1:变量名为中文、拼音
2:变量名过长
3:变量名词不达意
变量的三个特征(重点):
id(地址), type(类型),value(值)
示范:
>>> name='egon'
>>> print(id(name),type(name),name)
1964167301752 ,class 'str',egon
id相同,意味着type和value必定相同
value相同,type肯定相同,但是id 可能不同。
三:常量:即不变的量
命名:一般为大写。例如:AGE_OF_OLDBOY=58
四 :用户与程序交互
input()是让程序暂停,等待用户输入一些文本,获取用户输入后,python将其存储在一个变量中,方便使用。
在python3中
input:用户输入任何值,都存成字符串类型
在python2中
input:用户输入什么类型,就存成什么类型
五:注释
代码注释分单行和多行注释,单行注释用#,多行注释可以用三对双引号""" """
代码注释原则:
1:不用全部加注释,只需在自己觉得重要或者不好理解的部分或者需要解释的部分加注释即可
2:注释可以用中文或者英文,但不要用拼音。
六:基本数据类型
1:数字
常见类型:int整型,float浮点型
int整型:
定义:用于标识:年龄,等级,身份证号,qq号,个数等。age=15 #age=int(10),
float 浮点型:
定义:用于标识:工资,身高,体重等。 salary=3.1 #salary=float(3.1)
2:字符串:
定义:用于标识:描述性内容,如姓名,性别,国籍,种族等
加了引号的字符就是字符串类型,python并没有字符类型 。 name='ada' #name=str('ada')
3:列表
在[ ]内用逗号分隔,可以存放n个任意类型的值
定义:用与标识存储多个值得情况,比如一个班有多个学生
students=['egon','alex','wupeiqi'] #students=list(['geon','alex','wupeiqi'])
4:字典
在{}内用逗号分隔,可以存放多个 key:value 的值,value可以是任意类型。
定义:用于标识:存储多个值得情况,每个值都有唯一一个对应的key,可以方便高效的取值
info={‘name’:‘egon’,'age':20,'sex':male} #info=dict({‘name’:‘egon’,'age':20,'sex':male} )
5:布尔
布尔类型:true,false
用途:判断。
布尔类型的重点知识:
所有数据类型都自带布尔值
1:None,0, 空(空字符串,空列表,空字典)三种情况下布尔值为false
2:其余为均为真
数据类型又分为可变类型与不可变类型
可变类型:在id不变的情况下,value可以变,则为可变类型, 如列表,字典
不可变可惜:value一旦改变,id也改变,则成为不可变类型,(id变,意味着创建了新的内存空间)
七:格式化输出
占位符:%s, %d
%s 即可接受字符串也可接受数字
%d 只能接受数字。不能接受字符串。
八:基本运算符
这里先只说算数运算,比较运算,逻辑运算,赋值运算
算数运算: +加 ,-减,*乘,/除, %取余,**幂,//取商。
比较运算: =等于,!= 不等于,<>不等于,> 大于,<小于,>=大于等于,<=小于等于。 一般情况下不等于用词符号 “!=”
赋值运算:c=a+b, c+=a等效于 c=c+a, c-=a等效于c=c-a, c/=a等效于c=c/a,
c*=a等效于 c=c*a, c**=a等效于 c= c**a, c%=a等效于c=c%a, c//=a等效于c=c//a
逻辑运算:not,and, or
not:反之的 意思。
and:且的意思。 所有条件全部为真, 则结果为真。若其中有任何条件为假,则结果都为假。
or: 或的意思。 所有条件中有一个条件为真, 则结果为真。 只有所有条件为假时, 则结果为假。
身份运算:is 比较的是id, ==比较的是值。
九: 流程控制之 if....else
对于逻辑运算,即人根据外部条件的变化而做出不同的反映
if 条件满足时:
则应该 print()
else:
否则print()
例如:
如果 女人的年龄>=18并且<22岁且身高>170且体重<100且是漂亮的,name表白,否则:叫奶奶
age_of_girl=20
height=172
weight=96
is_beautifull=True
if age_of_girl>=18 and age_of_girl<=22 and height<100 and weight<100 and is_beautifull=true:
print("表白")
else:
print("奶奶")
十:流程控制之while循环
写重复的代码是程序员最不耻的行为,那么如何做到不用写重复代码又能让程序重复一段代码多次呢, 这时循环语句就有用啦
语法
while 条件: 循环体 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。 如果条件为假,那么循环体不执行,循环终止
例如:
实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
count=0
while count < 3:
inp_name=input("name:")
inp_password=input("password:")
name="seven"
password="123"
if inp_name == name and inp_password == password:
print("登录成功")
break
else:
print("登录失败")
count +=1