赞
踩
1.计算机的组成(5个)
输入设备,输出设备,存储器,计数器,运算器
控制台cmd可以去书写计算识别的指令(控制台快捷键)
命令行交互
1.切换到其他目录下
如果要切换的目录是子目录
cd 目录名
要切换的目录是上一级目录
cd ..
切换到同符盘的其他目录
cd 同盘符 :\ 其他目录名
切换到其他的符盘
d:
2.显示当前目录下的文件列
list
图形化界面
常见的进制方式(写上简写)
二进制(0b)
八进制(0o)
十六进制(0x)
转换规则:对十进制数除以二求余数,一直除到被除数等于0
整数的转换规则:
依此除以二趋于,然后从下往上累计
小数的转换规则:
乘以二,取整数部分,直到小数部分等于0
(小数转换中,会出现一个问题)精度缺失
十进制转二进制练习:
53
(0b)110101
17.75
(0b) 10001.11
44
(0b) 101100
19.0625
(0b)10011.101
按权展开求和(6个字)
二进制——十进制
0b100101 = 37
八进制:逢八进一
练:
0b011 101 101 100 110
--- 35546
十六进制:逢十六进一
例如:
0b0001 1010 1001 1101 1101
----> 1A9DD
练:
0b1101 0101 1101 1101
---- D5DD
补充:
十进制转八进制: 除以八取余数
十进制转十六进制: 除以16取余数
八进制、十六进制转十进制: 按权展开求和(几进制,权重就为几)
八进制转十六进制(十六进制转八进制) :先转为二进制再转为需要转换的进制
61 --- 转八进制——--0o75
0o75转化成十进制___61
十进制转十六进制
255_0xff
0xff转化成十进制
0xff _-255
八进制转十六进制
0o3756————-0x11 0111 0101 0110
计算机作用:存储数据进行运算的
数据是有很多形式的(图片)(音频)(视频)等等都是数据
把生活中熟悉的数据转化为计算机中二进制数据的过程称之为______编码
数字进行存储 ————用二进制进行存储 ascii码 规则: 把生活中的符号使用数字表示,这个数字就可以和二进制数建立联系了,间接的就把生活中的符号和二进制数据建立了联系 需要了解的字母对应的十进制数据 A --- 65 Z --- 90 a --- 97 z --- 122 常用的编码方式 gbk --- 国内的编码标准 unicode --- ______ 国际的编码标准 容纳了全世界的所有符号 常用的是______utf-8 前___个符号的编码规范与ascii码是一致的 针对于汉字符号 gbk一个汉字占__2个字节 utf-8一个汉字占_3_个字节
解码:把计算机中的数据解释成生活中的数据,这个过程就是解码
计算机中数据存储的单位就是字节(byte)___,简写___,b 存储数据是开辟的最小单位就是位___,ascii码中那些字符存储时就是占用的___1个字节
0100 0001 ---> A 65
_____-- 计算机中一个0或者一个1成为1位
一个字节等于_8_位
1024程序员节
1024
十进制 1000
1km = 1000m
二进制 1024
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
...
在程序中用于自定义的名字,要遵守一定的规范
这些是Python中的关键字
'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'
命名规则
项目名称:
大驼峰命名——每个单词的首字母最好大写
python文件名:
见名知意a_b
给代码添加的注解,辅助程序员解读代码的含义,不需要解释给计算机识别的
注释方式:
1. 单行注释 #
2. 多行注释''' ''' or """ """
对python世界say hello
print('hello,python')
print(*values, sep=' ', end='\n', file=None)
这个功能就是向计算机发布输出的任务, 让计算机把想输出的内容呈现出来
*values --- 表示要输出的数据
--- 如果有多个数据呈现的时候 每个数据之间的分隔符 默认是空格
--- 输出数据的结束符,每次输出数据时都会有一个结束符, 这个结束符默认是换行
\n
\ -- __转移符号__(名称)把一些特定的符号转义成其他的含义
\n -- 转行符号
\t -- 制表符,tap键
\r -- 转行符号
file --- 表示的是呈现内容的目的地,默认就是控制台
练习:
1.打印一个三角形
*
***
*****
*******
for i in range(0, 4):
for j in range(0, 4 - i):
print(' ', end='')
for j in range(0, 2 * i - 1):
print('*', end='')
print()
变量 -- 变化的数据,根据不同的场景 数据会发生变化
在程序中怎么声明变量 _____变量名 = 值`
变量名也是自定义的名字,需要遵守标识符的规范,因为python3的编码是UTF-8的,所以支持以中文作为变量名,但是不建议这些做
注意事项:
变量的其他赋值方式:
1. 声明一个变量赋值:变量名 = 值
2. 声明多个变量赋予同一个值:变量名1=变量名2=变量名=值
3. 声明多个变量赋予不同的值: 变量名1,变量名2=值1,值2
整数类型int
浮点类型 float
布尔类型 bool
这种类型的数据的特点: 只有True和false
字符串类型 str
字符:长度为1的字符串 ‘a’ ‘9’ ‘+’
容器型数据, 容器中的数据就是字符
获取数据的类型功能 type(数据)
1.听写回顾(15分钟)
1.已知目录结构如下 启动cmd命令行,当前路径在 python2101/day01/笔记下,想返回到day01目录下的指令为___cd .._______ 2.进制转换 十进制转化为二进制 24——-0b11000 13.3125__0b 1101.0101 二进制转化为十进制 0b101101_45 0b110110_54 二进制转化为八进制 0b101 101 011 011 ___0o 5533 二进制转化为十六进制 0b1101 1101 1011__0xddb 3.字符c在ascii编码中对应的十进制数据是__99___ 4.声明一个变量用于存储姓名,并打印这个变量对应的类型 name = input('其请输入你的姓名:') print(type(name)) 数据类型 int float bool str 容器类型
列表 __list
场景:
介绍:
符号:[]
特性:有序可变
元组 ____
场景:
介绍:
符号:()
特性:有序不可变
字典类型 ____
无序可变的容器 [添加顺序与显示顺序是不一致的]
存储的是具有_对应关系的___,简单的说是存储的是成对出现的数据
体现出来数据的关联性 可以使用字典
举例
注意:字典中的键是_键值对___,且不可变的
因为字典是无序的, 那就没有下标定位元素的操作,他是通过键定位元素的, 否则数据获取时存在多种数据的情况,就不确定具体是什么值了, 数据就变得模糊了
集合set
_无序可变的_容器, 元素是不允许重复的
一般就是应用于排重
场景:统计列表中非重复元素有多些
+ 指定的加法 对于数值类型 int float bool来说, 执行的就是__jia__ bool类型在参与算术运算时 True视为1 False被视为0 字符串类型str 来说, 来完成的是__连接字符串__ 注意事项:字符串类型的数据只能和_字符串_进行拼接 - 求减法的 * 对于数值类型来说 就是___相乘_ 对于字符串来说,__只能✖整型,字符串重复n次__ / 进行除法的 // 除法之后对结果进行向下取整__(接近于但是小于这个数的整数)__- % 对于数值来说 取的两数相除之后的余数 对于字符串来说,完成的是字符串格式化的操作 ** 求幂数的 x**y === x的y次方 符号之间的优先级 ** > * / // % > + - 如果要提高表达式的优先级 使用小括号包含
练习
1. 计算下面的表达式 17-15*False = 17 3**2*5 = 45 17 // 5 = 3 2. 格式化字符串 使用变量表示一个学生的姓名 年龄 成绩 然后按照一下格式进行格式化 '我叫xx, 今年xx岁,期末考试成绩是xx' name = input('请输入你的名字:') year = int(input('请输入你的年龄:')) score = float(input('请输入你的:')) print('我叫%s, 今年%d岁,期末考试成绩是%.1f'%(name,year,score))
= 把等号右边的运算结算结果赋值给等号左边的变量 x = 17 * 3 x = 51 复合赋值运算符 += -= *= /= //= %= **= 对指定的变量对应的值进行对应的算术运算后 把结果再赋值给这个变量 a = 10 a -= 2 ====》 a = a - 2 等号左右两边都有变量的时候 左边的变量是等待被赋值的 右边的变量是取上一次的值的 x = 17 x %= 3 ===> x = x % 3 x的结果是? x = 2
(6个)
比较运算符的结果是布尔类型的
x = 17
y = 19
x > y————false
字符串两个数据进行比较的时候的规则:
and 逻辑与(并且的关系) 短路原则:左边的等式不成立,右边不执行 or 逻辑或 (或者的关系) 短路原则:左边的等式成立,右边不执行 or not 逻辑非 真变假 假变真 not True = False not False = True 优先级 not > and > or 算术运算符的优先级 > 比较运算符 > 逻辑运算符
练习
x, y = 11, 13
1. x > 10 and x > y ————false
2. x < y and x > 11 or y < 15 __true
3. not(x - 5 < y - 7) __true
in
not in
遍历一个列表
nums = [17, 28, 19, 33]
res = 17 in nums
print(res)
res = 35 not in nums
print(res)
内存: 存放程序中的数据的 每个数据是有自己的位置的【地址】
变量赋值的时候
其实本质上是把数据的地址赋值给变量名
is 判断两个数据的地址是否是一致的
is not 判断两个数据的地址是否不是一致的
练习
1. 声明一个变量,接受一个整数, 判断它是否能被3整除
整除: 这两个数取余数 结果是0
2. 声明一个变量,接受一个整数, 判断它是否能被3整除 或者 能被5整除
a = int(input('请输入一个整数:'))
print(bool(not(a % 3)))
b = int(input('请输入一个整数:'))
if b % 3 == 0 or b % 5 == 0 :
print('可以3或者5整除')
针对于二进制数进行运算的 补充知识点:计算机中二进制进行运算时是通过补码的形式来进行运算的 二进制的形式有三种:原码 反码 补码 正数而言:原码 反码 补码格式是一样的 都是十进制数据转化成二进制的形态 负数: 原码: 在正数原码的基础上将最高为置为1 怎么判断这个最高位? 计算机中数据存储的单位字节 1个字节是8位 只要直到这个数据存储所占的字节数, 就知道这个数据的二进制总共有多少位,那最高位就明确 以一个字节为例(8位) 正数 11 ---》 原码 0000 1011 负数 -11 ----》 原码 1000 1011 反码:在负数原码的基础上 除了最高位,其余位按位取反 负数 -11 ---》 反码1111 0100 补码:在负数反码的基础上+1 负数-11 ----》补码 1111 0101 假如以原码形式进行运算 3-2 3 ---》 0000 0011 -2 ---》1000 0010 0000 0011 1000 0010 --------- 1000 0101 --- -5【错误的】 假设以反码进行运算 3-2 3 ---》 0000 0011 -2----》1111 1101 0000 0011 1111 1101 --------- 1 0000 0000 ---- 溢出: 这里的这个1是溢出状态【舍去的】 最后的数据是 0000 0000 ----》 0 【错误的】 以补码运 3-2 3 ----》 0000 0011 -2 ----》1111 1110 0000 0011 1111 1110 --------- 1 0000 0001 ----》 前面的1溢出 最后的数据 0000 0001 ----》 1【正确的了】 从二进制数据求对应的十进制数据的话,是通过原码来转换的
& 按位与 类似于逻辑运算符and 把1是做真 把0是做假 支持一假则全假 相同位上的数据 去进行逻辑判断 一假则假【只要相同位上有一个是0,该位对应的数据就是0】 7 & 6 7 --- 0000 0111 6 --- 0000 0110 ----------- 0000 0110 ----》 6 7 & -6 7 --- 0000 0111 -6的原码:1000 0110 反码:1111 1001 补码:1111 1010 0000 0111 1111 1010 --------- 0000 0010 ---- 2 | 按位或 类似于逻辑运算符or 把1是做真 把0是做假 支持一真则全真 相同位上的数据 去进行逻辑判断 一真则真【只要相同位上有一个是1,该位对应的数据就是1】 7 | 6 7 ----0000 0111 6 --- 0000 0110 ------------ 0000 0111 ---- 7 7 | -6 0000 0111 1111 1010 --------- 1111 1111 【补码】 反码:1111 1110 原码: 1000 0001 -----》 -1 ^ 按位异或 相同位上的数据 不同为真 相同为假 【相同位上的数据是不同的 该位对应的数据就是1 相同就是0】 7 ^ 6 7 ----0000 0111 6 --- 0000 0110 ------------ 0000 0001 --- 1 1 ^ 6 0000 0001 0000 0110 --------- 0000 0111 ---- 7 总结:一个数与相同的数异或两次 结果是其本身 交换两个变量的值 a = 10 b = 20 经过一些操作之后 a = 20 b = 10 python a,b = b, a 其他的语言中 是声明一个中间量 ~ 按位取反 所有位0变1 1变0 【补码形态运算的】 ~7 0000 0111 --------- 1111 1000【补码】 反码:1111 0111 原码: 1000 1000 -8 >> 按位右移 右移之后左边空出 正数的话补0 负数补1 48 >> 2 |0011 0000| |0000 1100|00 --- 12 【移动2位】 |0000 0110|000 ---- 6 【移动3位】 数值 // 2**(移动位数) -12 原码:1000 1100 反码:1111 0011 补码:1111 0100 向右移动2位 1111 1101【补码】 反码 1111 1100 原码 1000 0011 --- -3 << 按位左移 3 << 2 3向左移动2位 按位左移之后 右边空出 补0 |0000 0011| 00|0000 1100| --- 12 000|0001 1000| --- 24 3左移两位 结果是12 4 3左移3位 结果是24 8 3左移4位 结果是48 16 结构: 数值*2**(移动位数) 面试:如何快速的计算出来2的3次方 答案:1向左移动3位 -12 -12左移4位 原码 1000 1100 反码 1111 0011 补码 1111 0100 0100 0000 --- 64 -12 * 2**4 -12*16 -192 -128 - (-192) -128 + 192 = 64 8位所能表示的数据 -128 到 127 【256个数字】 正数0111 1111 ----》 127 +0 0000 0000 -0 1000 0000 ----》 -128 把-0当做-128处理的 负数1111 1111 ----》 -127 python中整数的范围 跟机器支持的位数有关 32b 64b -2**31 到 2**31 - 1
(符号):input
注意:获取的数据类型 默认是字符串,所以别忘了强制转换
需求: 键盘录入一个这个数 判断它是不是偶数
int(数据)
场景:
1.对浮点数取整 【取小数的整数部分】
2.把字符串的数据转化为整数
要求:字符串的内容必须满足整数格式
float(数据)
场景:把字符串转化为浮点型
要求:字符串的内容是满足数值格式化
bool(数据)
规则:
数值类型的数据:
容器类型的数据: ___即为True
只有容器壳没有数据 -- 空容器
''
[]
()
{}
特殊的数据:空值None --- 为False
None什么都没有
str(数据)
结果就是在原有数据的基础上加了一个引号外衣
str(10) --- '10'
str([12, 34, 56]) ---- '[12, 34, 56]'
把数据转化为字符串 一般就是___➕__拼接的时候
list(数据)
数据只能是_容器类型_类型的数据
结果就是把数据依次放到列表中
练习
键盘录入一个字符, 判断它是不是小写字母
a = input('请输入一个字符')
if 'a' <= a <= 'z' :
print('是小写字母')
else :
print('不是小写字母')
按照编写规范:一行写一条语句
场景1:单分支 如果满足某个条件 就做某个事情 例如: 满18周岁 就可以进网吧 满22周岁 就可以领证 代码语法:if 条件1 : 场景2:双分支 如果满足某个条件 就做某件事 否则做其他的事 例如:如果分数达到一本线 就选一本院校 否则选二本或者其他院校 代码语法:if 条件1 : else : 场景3:多分支 如果满足某个条件1 就做某件事1 否则如果满足条件2 就做事情2 ... 否则如果满足条件n 就做事情n 否则做事情n+1 代码语法: if 条件1 : elif 条件2 : elif 条件3 : elif 条件n : else : 分支语句中只会执行一个分支, 有一个分支被执行 整个分支语句结束
1.键盘录入一个整数,判断是不是一个小于50的数,如果是的话,输出这个数的平方, 否则就输出这个数对3取余的余数 a = input('请输入一个数') if a < 50 : print(a ** 2) else : print(a % 3) 2.声明两个变量,分别表示姓名和成绩, 完成下面的话术 我叫xx, 期末成绩是xx [注意:成绩保留两位小数] name = input('请输入你的姓名:') score = float(input('请输入你的成绩:')) print('我叫%s, 期末成绩是%.2f'%(name,score)) 3.x = 17 y = 18 判断下面的式子是否成立 x + 2 > y and y > 20 False x < y or (y - 1) >= x True not(x > y) True
语句嵌套
在满足某种条件的情况下,还需要在做判断 例子: 查看公交卡上的余额, 如果余额大于1元 乘坐公交车出行, 否则只能步行出行 如果是乘坐公交车, 查看车上是否有空座 如果有空座 坐车乘车 否则只能站着乘车 money = float(input('请输入你公交卡上的余额:')) if money > 1 : a = input('是否有空座位(写有或者没有):') if a == '有' : print ('坐着乘车') else : print ('坐着乘车') else : print('步行出行') 例子2: 键盘录入年 月 输出这个月的天数 1 3 5 7 8 10 12 都是31天 4 6 9 11 都是30天 2 闰年 29天 平年 28天 year = int(input('请输入年份:')) mouth = int(input('请输入年份:')) day = int(input('请输入年份:')) mouth_list = [31,28,31,30,31,30,31,31,30,31,30,31] count_mouth = 0 count_day = 0 if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: mouth_list[1] = 29 for i in mouth_list[0:mouth-1]: count_mouth += i count_day = count_mouth + day print('今天是%d年的第%d天'%(year,count_day))
练习
追光吧哥哥 键盘输入的1-100 之间的整型数字表示哥哥参赛的得分,及格分数是 60 分.如果大于 60则可以继续参加下一轮的公演,否则进入禁演区. 如果在禁演区,键盘输入是否愿意通过努力走出禁演区,如果愿意打印:你真是努力追光的哥哥,加油,否则打印:太遗憾了哥哥,你不能参加比赛. 如果有资格参加公演则选择队长.键盘输入队长名称,根据名称打印恭喜进入谁的队伍.(参考队长名称:1.烧饼 2.朦胧 3.小天) score = int(input('请输入这位哥哥的成绩(1-100):')) if score > 60 : dui = input('恭喜通过,请选择你要选择的队长1.烧饼 2.朦胧 3.小天:') print('恭喜进入%s的战队'%dui) else : print('失败了') chose = input('是否愿意通过努力走出禁演区(是 or 否)') if chose == '是' : print('你真是努力的追光哥哥,加油') else : print('太遗憾了哥哥,你不能参加比赛')
练习1
现在经过层层筛选晋级的各位演员们要进行终极PK,于是他们组成了两大战队:大辈儿战队和致青春战队。 分队规则: 大辈儿战队需要满足年龄大于35岁,如果在35-45之间进入A组,否则进入B组。 致青春战队就是小于35岁的演员们,如果年龄在35-25之间进入A组,小于25岁的进入B组。 year = int(input('请输入您的年龄:')) if year > 35 : if year < 45 : print('恭喜进入大辈战队A组') else : print('恭喜进入大辈战队B组') else : if year > 25 : print('恭喜进入致青春战队A组') else : print('恭喜进入致青春战队B组')
循环:周而复始重复做某件事
循环的场景:
1.满足到某个条件 循环不再继续
跑步
2.一直重复,没有终止的时候
这种场景的叫做死循环
python中提供的循环机制: ___while_循环和__for__循环
上面的两种场景都适合 语法:while 条件 : 解读: 循环条件成立的话,重复的事情会一直进行,直到循环条件不成立。 死循环的语法: while True 实现跑步 --- 跑10圈 只要没有跑够10圈 就得一直进行下去 需要定义计数器 -- 用于记录跑圈这件事情重复了几次 重复一次 计数器+1 直到这个计数器为10的时候 count_cycle = 0 while count_cycle < 10 : count_cycle += 1 print(count_cycle) while和if的区别 if 后面的条件 while 后面的条件 while的另外一种结构 while-else: while 循环条件: 循环体 else: 执行时机 当且仅当循环条件不成立的时候才会执行
break -- 仅对循环语句起作用,作用是:___结束整个循环_ 猜价格游戏: 给商品定一个价格【这个价格是随机的 在70-300之间随机生成的一个整数】 参与者猜商品的价格 【用户输入价格】 如果猜的价格比定的价格高 提示猜高了 重新猜 如果猜的价格比定的价格低 提示猜低了 重新猜 如果猜对了 提示 恭喜把商品带回家 结束猜的游戏 import random prince = random.randint(70,300) while True : guess = int(input('请输入70-300的价格')) if guess == prince : print('猜对了') elif guess < prince : print('猜小了') elif guess > prince : print('猜大了') continue -- 仅对循环语句起作用,作用是:_结束本次循环___ 打印1-100中的偶数 --- 只要是奇数 就跳过打印 for a in range(0,101) : if a % 2 == 0 : print(a) else : continue break 和 continue 后面不能跟随平级的代码,因为那个代码永远无法执行到
没有死循环这一说,一般是来_遍历容器__的,依次__获取容器中的数据__ 另外一种____遍历容器的个数当作循环次数来使用__来使用 语法: for i in 容器 解读: 每循环一次,就在容器型的数据中获取依次获取元素赋值给变量,到元素都被遍历完,循环自动结束 另外一种语法: for-else for 变量 in 容器型数据: 循环体 else: 当且仅当容器中所有的数据被自动遍历完成 循环结束时执行else
模块:一个python文件就是一个模块, 可以理解就是工具文件,里面存放这可以使用的工具
分类:__系统__模块 【安装环境时 自带的工具文件】
__自定义__模块 【自己创建的python文件】
___第三方_模块 【使用pip进行安装的】
如果想在一个文件A中使用另一个模块B的内容, 需要先把B在A中导入【先找到使用的工具】
导入的语法:
__import 模块B____
range生成的也是一个容器类型的数据,作用是生成一个等差序列
使用有三种操作:
range(10, 0, -1) -- 10 9 8 7 6 5 4 3 2 1
range(11, 0, -2) --- 11 9 7 5 3 1
range(1,10, 2) --- 1 3 5 7 9
[start, stop)这个范围中按照步长 形成对应的等差序列
[1, 10) 步长10 只能取个1
1.登录系统校验: 键盘录入一个用户名和密码, 判断用户名是不是admin, 密码是不是123456 如果不是 提示用户名或密码错误, 并继续输入的行为 否则 提示登录成功 并结束输入的行为 while True: name = input('请输入用户名:') key = int(input('请输入密码:')) if name != 'admin' or key != '123456' : print('提示用户名或密码错误') else : print('登陆成功') break 2.nums = [12, 45, 67, 19, 42, 38] 使用for循环遍历nums,并将nums中的元素累计和求出 nums = [12, 45, 67, 19, 42, 38] for i in nums: print(i) 注意: 变量i在遍历的时候 每获取一个元素就会被重新赋值1次
循环嵌套
循环 --- 重复做的事情
循环嵌套 --- 重复做的事情还是重复的
break和continue的作用范围
break > continue
将数据转化为布尔类型
___数据_ 非0即为True
___容器_ 非空容器即为True
None False
在条件判断的时候 非布尔类型的数据会做隐式转换 转化为布尔类型 进行条件判断
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。