python的入门到一般般牛逼
什么是python?
python是一门编程语言
什么是编程语言?
语言就是一种东西和另一种东西的沟通的介质,比如狗和狗交流用狗语,中国人交流用汉语,美国人交流用英语。
所以编程语言就是程序员和计算机的沟通介质
什么是编程?
程序员基于某种语言的语法格式将自己想让计算机做的事写成文件,所以编程的结果就是能是计算机理解并让计
算机做事的一堆文件,这个一堆文件就是。
为什么要编程?
编程不是用来装逼的,编程是为了造福人类的,它计算机代替人类去劳动从而解放人力
什么是计算机
又叫做电脑,是一种用于高速计算的电子计算机器可以逻辑运算,数值运算,并且有存储记忆功能。是由控制器,
运算器,存储器,输入设备,输出设备组成。控制器和运算器就是电脑的CPU,存储器有内外之分,内存储器就是
电脑的内存,外内存储器电脑的硬盘,输入设备就是电脑的键盘,鼠标。输出设备就是电脑的屏幕和喇叭。
cpu、内存、硬盘的工作原理?
内存从硬盘中读取数据和指令并保存在内存中,cpu再从内存中读取数据和指令进行解析,cpu再根据解析后指令
得到的操作码确定计算机将进行什么样的操作
操作系统
什么是操作系统?
操作系统位于计算机硬件与软件之间
是一个协调,管理,控制计算机硬件资源与软件的控制程序
为什么要有操作系统?
控制硬件
把对硬件的复杂的操作封装成优美简单的接口文件,给用户或者应用程序去使用
注意:一套完整的计算机系统包含三部分应用程序(如快播和暴风影音),操作系统(如
windows和linux),计算机硬件(如处理器硬盘)
强调:程序员以后开发的都是应用程序,应用程序无法直接操作硬件,但凡要操作硬件都是调用操作系统的接口
编程语言分类
1机器语言:直接用二进制编写程序,直接操作硬件
优点:执行效率高
缺点:开发效率低
2汇编语言:用英文标签取代二进制指令,本质还是在直接操作硬件
优点:开发效率相对机器语言快
缺点;执行效率相对机器语言慢
3高级语言:高级语言就是直接用人能理解的语言跟语法风格来编写程序,程序员无需再去考虑复杂的硬件操作问题,是我们用高级语言编写的程序归根结底是要给计算机去执行,这就涉及到一个翻译的过程,要把人用的高级语言编写的程序翻译成计算机所能理解的二进制指令才执行,按照翻译方式的不同,高级语言又分为两类:
编译型:C语言 解释型:python
编译型执行效率比解释型快 开发效率不如解释型
执行效率再快也要受限于网速,于是我们现阶段需要优先考虑就是开发效率。
执行python程序有两种方式
1交互式
优点:调试程序
缺点:无法永久保存
2命令行的方式
可以永久保存
Python执行程序的三个阶段:
1先启动python3解释器
2python3解释器就像一个文版编辑器将文件内容从硬盘读入内存
3python3解释器解释执行文件代码
强调:只有第三个阶段才识别python语法
变量
即变化的量
量:记录衡量现代世界中的事物的状态,让计算机能过像人一样去识别时间万物
变:现实世界中的状态是会发生改变的。
变量是由三部分组成:
变量名:是用来引用变量值的,但凡要用变量值,都需要通过变量名
赋值符号:赋值
变量值:就是我们存放的数据,是用来记录现实世界中的某种状态
变量名的命名规范
强调:变量名的命名应该能反映变量值的记录状态
1变量名只能是字母,数字,下划线的任意组合
2变量名的第一个字符不能是数字
3关键字不能声明为变量名
变量名的两种风格:驼峰体和下划线,针对变量名的命名风格推荐使用下划线。
Python的内存管理:变量值的引用计数一旦为0,那么这个变量值变成垃圾,就会被python的垃圾回收机制回收
Python的内置功能id(),每一个变量值都有其内存地址,而id是用来反映变量值在内存中的位置,内存地址不同id则不同,id相同值一定相同,值相同id不一定相同。
==:判断值是否相等
Is:判断id是否相等
数据类型
1、什么是数据类型
变量值才是我们存储的数据,所以数据类指的就是变量值的不同种类
2、为何数据要分类型?
变量值是用来保存现实世界中的状态的,那么针对不同的状态就应该用不同类型的数据去表示
一:数字类型
整型int
1、作用:表示人的年龄、各种号码、等级
2、定义
age=18 #age=int(18)
print(id(age))
print(type(age))
print(age)
二、浮点型float
1、作用:表示身高、体重、薪资。。。
2、定义
salary=3.1 #salary=float(3.1)
print(id(salary))
print(type(salary))
print(salary)
三、字符串类型str
1、作用:表示描述性质的状态,比如人的名字,家庭住址
2、定义:在单引号、双引号、三引号内包含的一串字符
name='egon' #name=str('egon' )
注意点:
msg="my name is 'egon'"
print(msg)
3、如何用
字符串类型只能:+或者*
msg='hello'
name='egon'print(msg + name)
name='egon'
print(name * 10)
也可以比较大小
print(msg2 > msg1)
print('a' > 'Z')
四:列表list
1、作用:用来存取放多个值
2、如何定义:在[]内用逗号分隔开多个任意类型的值
l=[1,'a',3.1,[1,3]] #l=list([1,'a',3.1,[1,3]])
print(id(l))
print(type(l))
print(l)
x=111
l=[1,2,x,'a']
print(l)
hobbies=['read','run','basketball']
0 1 2
3、如何用:按照索引取值,索引是从0开始的
print(hobbies[2])
print(hobbies)
l=['alex','male',['oldboy',200]]
print(l[2][1])
练习
students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
取出第一个学生的第一个爱好
print(students_info[0][2][0])
五:字典dict
1、作用:用来存取放多个值,按照key:value的方式存放的值,取的时候可以通过key而非索引去取值,key对value是有描述性功能的
2、定义方式:在{}内用逗号分隔开多个元素,每一个元素都是key:value的格式,其中value可以是任意类型,key大多数情况都是字符串类型
name' 'sex' 'age' 'company_info'
user_info=['egon','male',18,['oldboy','Shanghai',20]]
print(user_info[1])
print(user_info[0])
print(user_info[3][1])
'name' 'sex' 'age' 'company_info'
user_info={
'name':'egon',
'sex':'male',
'age':18,
'company_info':{'c_name':'oldboy','c_addr':'Shanghai','members':20}
}
print(id(user_info))
print(type(user_info))
print(user_info)
print(user_info['name'])
print(user_info['company_info']['c_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'][1])
六:布尔bool
1、作用:用于判断的条件
2、如何定义:True,False
print(10 > 2 and 3 > 14)
print(type(True))
所有的数据类型的值本身就是一种布尔值,即所有的数据类型都可以当作条件去用
在如此多的数据类型中只需要记住:0,None,空,它们三类的布尔值为False
重点:
1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间
与用户交互
在python3中的input会将用户输入的任何内容都存成字符串类型
name=input("请输入您的姓名:") #name='egon'
pwd=input("请输入您的密码:") #pwd='123'
print(name,type(name))
print(pwd,type(pwd))
print('=========>1')
print('=========>2')
print('=========>3')
在python2中的raw_input用法与python3的input是一摸一样的
name=raw_input("请输入您的姓名:") #name='egon'
pwd=raw_input("请输入您的密码:") #pwd='123'
age=input('age>>>: ') #age='18'
print(age,type(age))
age=int(age)
print(age > 11)
代码注释
代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """
代码注释的原则:
1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
2. 注释可以用中文或英文,但不要用拼音
格式化输出
name='egon'
age=18
%s其实可以接收任意类型的值
print('my name is %s my age is %s' %(name,age))
print('my name is %s my age is %s' %(name,[1,2]))
%d只能接收int类型的值
print('my age is %d' %age)
name=input('username>>: ')
age=input('age>>: ')
sex=input('sex>>: ')
job=input('job>>: ')
print("""
------------ info of %s -----------
Name : %s
Age : %s
Sex : %s
Job : %s
------------- end -----------------
""" %(name,name,age,sex,job))