Python入门
Python入门
第1章 编程与编程语言
python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程?
1.1 什么是编程?
就是程序员用计算机所能理解的表达方式(编程语言)把自己的思维逻辑写下来,编程的结果就是一堆文件。
1.2 什么是编程语言?
一种事物与另外一种事物沟通的介质所以说编程语言是程序员与计算机沟通的介质。
1.3 编程的目的
用机器取代人力,解放劳动力。
第2章 编程语言的分类
2.1 机器语言
用二进制指令编程,本质是直接操作硬件
优点:执行效率高
缺点:开发效率低,学习难度高
2.2 汇编语言
用英文标签代替二进制指令,本质也是直接操作硬件
优点:执行效率高
缺点:开发效率低,学习难度高
2.3 高级语言
用人类的字符去编写程序,人类的字符计算机无法理解,必须经过翻译,翻译成机器语言计算机才能执行
2.3.1 编译型
C
类似与谷歌翻译-->gcc
特点:编译一次,拿到结果可以重复执行,无需重新编译
翻译:程序---->gcc----->机器语言
执行:机器语言---->CPU
优点:执行效率高
缺点:
调试程序麻烦
跨平台性差
2.3.2 解释型
Python
类似于同声传译--》解释器
特点:解释一行,执行一行,即边翻译边执行
程序---->解释器----->机器语言----->CPU
优点:
开发效率高
跨平台性高
调试程序方便
缺点:
执行效率低
2.3.3 总结
学习难度:从高到低
执行效率:从高到低
开发效率:从低到高
第3章 Python介绍
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
最新的TIOBE排行榜,Python赶超PHP占据第4, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
第4章 安装Python解释器
python解释器安装,多版本共存
我的电脑-》属性-》高级系统设置-》环境变量-》修改系统PATH
win10:直接添加
win7:C:\Users\oldboy1;C:\Users\oldboy2;C:\Users\oldboy3;D:\python36
第一个python程序,两种运行程序的方式
交互式:调试程序
python 程序的路径:python D:\test.txt (强调,后缀名没有影响,但写成.py结尾是约定俗成)
重点:
1、先启动python解释器
2、将D:\test.txt的代码读入内存
3、解释执行
第5章 变量
5.1 什么是变量?
变:变化
量:表示的是状态
变量是一种可以反映出状态变化的一种机制
5.2 为什么要有变量?
程序的执行本质就是一系列状态的变化
5.3 如何定义变量?
变量名相当于门牌号
name = 'list'
age = '18'
level = '10'
i
5.4 变量的定义规范
1)变量名只能数字,字母或者下划线的任意组合
2)变量名的第一个字符不能是数字
3)关键字不能声明为变量名.例如[‘and’,’as’.’break’]等
5.5 定义方式
5.5.1 驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80
5.5.2 下划线(推荐使用)
age_of_oldboy = 56
number_of_students = 80
5.6 定义变量名不好的方式
1)变量名为中文,或者拼音
2)变量名过长
3)变量名词不达意
5.7 定义的变量会有:id type value
1)等号比较的是value,
2)is比较的是id
强调提示:
1)id相同,意味着type和value必定相同
2) value相同type肯定相同,但id可能不同,如下
>>> a='age :18'
>>> b='age :18'
>>> id(a)
42900312
>>> id(b)
42900088
>>> a == b
True
>>> a is b
False
>>>
第6章 常量
常量是指不变的量,就是指在程序中不会改变的量,在Python中没有一个专门的语法代表常量,程序员约定俗称的用变量名大写代表常量。
USER_NAME = ‘what’
第7章 用户与程序交互
相当于去操作ATM机取钱,在机器上操作,达到用户想要的目的。
#在python3中
input:用户输入任何值,都存成字符串类型
#在python2中
input:用户输入什么类型,就存成什么类型
raw_input:等于python3的input
7.1 注释
以后写的项目中,代码有千万行,甚至有些自己写的代码自己都不懂,所以为了避免这种尴尬,一定要讲代码加上注释
7.1.1 代码注释分类
单行注释用:#
多行注释用:””” “””
注意:
1)不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
2)注释可以用中文或英文,但不要用拼音
文件头:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
第8章 基本数据类型
什么是数据?为何要有多种类型的数据?
数据就是变量,为了反映状态的变化以及状态的多样化。
8.1 数字
8.1.1 int整形
定义:age =10
用于标识:年龄、等级、身份证、qq号、个数
8.1.2 float整形
定义:salary=9.9 height=1.83
用于标识:工资、身高、体重
8.2 字符串
在Python中加了 引号的字符就是字符串类型,Python没有字符串
定义:name = ‘what’
用于描述性的内容,例如姓名,性别,国籍,种族
8.2.1 单双引号区别
解释:在Python中单双引号没有区别。
# 字符串str:包含在引号(单引号,双引号,三引号)内的一串字符
# 用来表示:名字,家庭住址,描述性的数据
s1='egon1'
s2="egon1"
s3="""
egon3
"""
s4='''
egon3
'''
8.2.2 字符串拼接
注意:字符串能进行相加和相乘的运算。
实例:
#字符串拼接:+,*
s1='hello '
s2='world'
print(s1+s2)
s1='hello '
print(s1*10)
提示:
1)字符串相加的效率不高
2)只能字符串加字符串,不能字符串加其他类型
8.3 列表
在[]内用逗号分隔,可以存放n个任意类型的值,值可以是任意类型。
用来存放多个值:多个爱好,多个人名
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
stu_names=['asb','egon','wsb'] #stu_names=list(['asb','egon','wsb']) print(id(stu_names),type(stu_names),stu_names) print(stu_names[2]) user_info=['egon',18,['read','music','dancing','play']] print(user_info[1]) print(user_info[2][1])
8.4 字典
1.字典:定义{}内用逗号分隔开,每一个元素都是key:value的形式,其中value可以是任意类型,而key一定要是不可变类型 #name age hobbies
2.为什么要使用字典?
存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放
例子:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
user_info={'name':'egon','age':18,'hobbies':['read','music','dancing','play']} #user_info=dict(...) print(id(user_info),type(user_info),user_info) # print(user_info['age']) print(user_info['hobbies'][3]) info={ 'name':'egon', 'hobbies':['play','sleep'], 'company_info':{ 'name':'Oldboy', 'type':'education', 'emp_num':40, } } print(info['company_info']['name']) students=[ {'name':'alex','age':38,'hobbies':['play','sleep']}, {'name':'egon','age':18,'hobbies':['read','sleep']}, {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']}, ] print(students[1]['hobbies'][0]) students={ 'alex':{ 'age':84, 'hobbies':['play','sleep'] }, 'egon':{ 'age':18, 'hobbies':['play',] } } print(students['egon']['age'])
8.5 布尔
布尔类型bool:True,False
用途:判断
1 age_of_oldboy=18 2 3 inp_age=input('your age: ') 4 5 inp_age=int(inp_age) 6 7 if inp_age > age_of_oldboy: 8 9 print('猜大了') 10 11 elif inp_age < age_of_oldboy: 12 13 print('猜小了') 14 15 else: 16 17 print('猜对了')
8.5.1 布尔类型的重点知识!!!:所有数据类型,自带布尔值
只有三种类型的值为False
0
None
空:'',[],{}
其余全部为真
例子:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
if ['',]: print('====>') #有值是为true可以打印 l=[] print(l[0]) if {'':'',}: print('===?') if True: print('===>?')
# 可变类型与不可变类型
# 可变:在id不变的情况,值可以改变
例子:
x=1 print(id(x),type(x),x) x=2 print(id(x),type(x),x) x='abc' print(id(x),type(x),x) x='dec' print(id(x),type(x),x) x=['a','b','c'] print(id(x),type(x),x) x[2]=10 print(x) print(id(x),type(x),x) dic={'x':1,'y':2} print(id(dic),type(dic),dic) dic['x']=111111111 print(dic) print(id(dic),type(dic),dic) 不可变类型:数字,字符串 可变类型:列表,字典 dic={[1,2,3]:'a'}
第9章 格式化输出
程序有时会使用这种场景:要求用户信息,然后打印成固定的格式
例如:
name=input('名字>>: ') age=input('年龄>>: ') print('my name is %s my age is %s' %(name,age)) print('my name is %s my age is %s' %('egon',18)) print('my name is %s my age is %d' %('egon',18)) x='my name is %s my age is %d' %('egon',18) print(x) name=input('name: ') msg=""" ------------ info of %s ----------- Name : %s ------------- end ----------------- """ %(name,name) print(msg)
第10章 基本运算符号
算数运算:
以下假设变量:a=10,b=20
比较运算:
以下假设变量:a=10,b=20
赋值运算:
逻辑计算:
身份运算:
is比较的是id
而==比较的是值
第11章 流程控制之if..else
我们编程的目的为了控制计算机像人脑一样,走流程以及会判断,根据条件作出不同的反映。
1 if 条件1: 2 3 4 5 缩进的代码块 6 7 8 9 elif 条件2: 10 11 12 13 缩进的代码块 14 15 16 17 elif 条件3: 18 19 20 21 缩进的代码块 22 23 24 25 ...... 26 27 28 29 else: 30 31 32 33 缩进的代码块
第12章 流程控制while循环
12.1 为什么要使用循环
原因:为了使代码流程更加的简单。
12.2 条件循环:while,语法如下
while 条件:
1)循环体
2)如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
3)# 如果条件为假,那么循环体不执行,循环终止
12.3 死循环
例子:
import time num=0 while True: print('count',num) time.sleep(1) num+=1
12.4 循环嵌套与tag
tag=True while tag: ...... while tag: ........ while tag: tag=False
12.5 break与continue
12.5.1 break:跳出本层循环
例子:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
age_of_oldboy=18 while 1: inp_age=input('your age: ') inp_age=int(inp_age) if inp_age > age_of_oldboy: print('猜大了') elif inp_age < age_of_oldboy: print('猜小了') else: print('猜对了') break age_of_oldboy=18 count=0 while count < 3: inp_age=input('your age: ') inp_age=int(inp_age) if inp_age > age_of_oldboy: print('猜大了') elif inp_age < age_of_oldboy: print('猜小了') else: print('猜对了') break count+=1 print('猜的次数',count) age_of_oldboy=18 count=0 while True: if count == 3: print('try too many times') break inp_age=input('your age: ') inp_age=int(inp_age) if inp_age > age_of_oldboy: print('猜大了') elif inp_age < age_of_oldboy: print('猜小了') else: print('猜对了') break count+=1 print('猜的次数',count)
12.5.2 continue用于退出本次循环,继续下一次循环
while True: print "123" continue print "456"
12.6 while+else
例子:
count=1 while count <= 3: inp_user = input("user:") inp_pwd = input("password:") if inp_user == 'seven' and inp_pwd == '123': print('login successful') break else: print ("login failed") count += 1 continue