学习python第一周
day01:
1、编程介绍(***)
1.什么是编程语言? :编程语言就是程序员跟计算机沟通的语言 , 类似于 中国人---通过汉语----与中国人沟通
2、计算机硬件(*****)
计算机核心硬件 cpu(控制器+运算器) 内存 硬盘
运行程序与计算机硬件的关系
程序最先存放于硬盘
程序的运行是从硬盘把代码加载到内存中
cpu从内存中取出指令运行 程序运行过程中产生的数据最先存放与内存
---------------
IO问题与程序的效率
1.把指令依赖的数据事先加载到内存,能从内存取数据就不要从硬盘取
2.针对要永久存放的数据,应该在内存中攒一大波然后一次性写入硬盘
3、操作系统与平台(*****)
操作系统(Operating System,简称OS) 是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
计算机体系的三层结构:
应用程序/用户
控制程序(操作系统:Windows 、Linux)
计算机硬件
平台: 计算机硬件+操作系统
4、编程语言分类(***)
机器语言 最低级的语言 不用经过翻译直接被机器识别 性能最好的方式
汇编语言 低级语言 符号语言 使用助记符 或 地址符号代替机器指令的操作码与操作数 性能与机器语言相似
高级语言 编程语言的集合
解释型语言 一边执行一边翻译为机器语言 效率低于编译型 开发效率超过编译型 python
编译型语言 一次性翻译为机器语言 c c++
5、安装python解释器(*****)
官网下载
day02:
注释:注释是为了方便更快的理解代码内容
注释的类型 # 三引号成对使用 ''' ''' """ """
1、变量(*****)
什么是变量?
量:记忆下事物的状态
变:事物的状态是可以发生变化的
变量就是一种控制计算机把数据存起来的机制,存到内存中
为什么用变量?
变量是为了控制计算机能够像人一样去记忆下事物的状态
并且记录的状态是可以发生变化的
怎么用?
原则: 先定义,在引用
name = 12
print(name)
变量的三大组成部分:
变量名:相当于门牌号,用来访问 引用值
= 赋值号 将值的内存地址绑定到变量名
值:我们要记录的状态,数据
变量名的命名:规定 字母、数字、下滑线组成 首字母不可以为数字
一般原则:不使用关键字命名、变量名应该见名知意
命名风格:驼峰提:NameOfHe
小写加下划线: name_of_he 推荐使用
变量值的三大特征
id号:内存地址
值的类型:int float str
值自己
=========内存管理值垃圾回收机制============
垃圾:引用计数为0,
引用计数:值被直接绑定与间接绑定次数总和
========================================
2、基本数据类型(*****)
(1)Number 数字类型 (int float bool complex)
int : 整数类型
定义:age=10
用于标识:年龄,等级,身份证号,qq号,个数
float 浮点型 小数点类型
定义:salary=3.1 #salary=float(3.1)
用于标识:工资,身高,体重,
bool:布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运行与逻辑运算,此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识
#所有数据类型都自带布尔值 1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False 2、其余均为真
重点:
#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典 #2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
(2)str 字符串类型
在python中,加了引号的字符就是字符串类型,
python并没有字符类型。
定义:name='egon' #name=str('egon')
用于标识:描述性的内容,如姓名,性别,国籍,种族
字符串拼接(只能在字符串之间进行,且只能相加或相乘)
(3)list 列表类型
在[]内用逗号分隔,可以存放n个任意类型的值
定义:students=['egon','alex','wupeiqi',] #students=list(['egon','alex','wupeiqi',])
用于标识:存储多个值的情况,比如一个人有多个爱好
列表的嵌套与取值
>>> students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
>>> students_info[0][2][0] #取出第一个学生的第一个爱好 'play'
(4)tuple 元组类型
(5)set 集合类型
(6)dict 字典类型
在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
定义:info={'name':'egon','age':18,'sex':18} #info=dict({'name':'egon','age':18,'sex':18})
用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值
3、输入输出(*****)
input() 获取用户输入
print() 输出
格式化输出 占位符,如:%s、%d
%s字符串占位符:可以接收字符串,也可接收数字
%d数字占位符:只能接收数字
print('My name is %s,my age is %s' %('egon',18))
4、运算符(*****)
算术运算
+ - * / ** % //
比较运算
< > != == <= >=
赋值运算
增量赋值:x = x +1 相当于 x += 1
+= -= *= /= //= %= **=
链式赋值:x=y=z=10
交叉赋值: x,y = y,x
解压赋值:x,y,z=[1,2,3] x,y,z =1,2,3
*号的使用 *_,x,y = [1,2,3,4] ===> x = 3 y = 4 _=1,2 *为收集参数 位于首,倒着赋值 *_位于中间 两边赋值 位于末尾属于正向赋值
逻辑运算 布尔运算 1 < 2 and 2>1 结果为True
and 与 一假则假 同真为真
or 或 一真则真 同假则假
not 非 真假 互换
三者的优先级关系:not>and>or,同一优先级默认从左往右计算。
短路运算:逻辑运算的结果一旦可以确定,那么就以当前处计算到的值作为最终结果返回
2 and 3 ===> 3
0 and 2 ===> 0
0 or 2 ===> 2
2 or 3 ===> 2
身份运算
is比较的是id
可变类型 值相同 但id 绝不相同
而==比较的是值
结论:如果要变量一个变量是否等于None、True、False,推荐使用is去判断
day03:
1、流程控制值if(*****)
什么是if判断
判断 条件1 并且 条件2:
做什么事。。。
否则:
做什么事。。。
为何要有if判断
为了控制计算机能够像人一样去完成判断的过程
如何用if判断 一个if 代码块 elif 可以有多个 else 只有一个或者没有
if True :
代码块
elif True: #elif 0个或多个
代码块
else: #0个或一个
代码块
可以嵌套使用
2、流程控制之while循环(*****)
1、什么是循环?
循环指的就是重复做某一件事
2、为何要有循环
循环就是为了让计算机能够像人一样去重复做某件事
3、如何用循环
while循环,又称之为条件循环
能够重复多少次取决条件何时变为假
格式
while 条件为真: 条件为真永远执行直到条件不为真 或者跳出循环
代码1
代码2
代码3
其他代码
结束循环的方式
结束while循环的方式
方式一:把条件变为False,不会立刻结束循环,会等到把本次循环体代码都运行完毕后,
下一次循环开始重新判断条件时才会结束
方式二:break结束本层循环,只要运行到break就会立刻结束while循环,本次循环的后续代码都不会执行
while循环的嵌套
while True:
while True:
while True:
break
break
break
while+else
else:else的子代码会在循环正常结束的情况下运行(break干死while循环的的情况称之为非正常结束)
3、流程控制之for循环(*****) 循环取值 遍历循环
for循环在某种重复做某件事的场景下比while循环更简单
for循环的次数取决in后跟那个对象里有多少值
names=['egon','李根','王根']
for item in names:
print(item) # 'egon','李根','王根'
for+range: range(起始位置,结束位置,步长)
1 for i in range(3): 2 print("外层循环第%s次" %i) 3 for j in range(2): 4 print('======》内存循环第%s次' %j)
day04:
1、数字类型(int、float)的常用操作(*****)
数字类型转换
转换成字符串 str( )
转换成 整数int()
转换成浮点数 float()
进制转换
十进制转成二进制
print(bin(123)) # 0b1111011
十进制转成八进制
print(oct(123)) # 0o173
十进制转成十六进制
print(hex(123)) # 0x7b