1.硬件系统:
主机部分:
1.*处理器(CPU): 电脑的大脑
运算器: 数值计算和逻辑判断
控制器: 可以电脑中的各个部件协同工作
2.内部存储器:
随机存储器:内存条
使用电信号表示数据;
特点:
1.读写数据速度快
2.临时存储数据
只读存储器
外设部分:
输入设备:
键盘
鼠标
摄像头
输出设备:
显示器
音箱
打印机
外部存储器:
U盘
硬盘:
使用磁表示数据.
特点:
1.读写数据的速度慢
2.永久存储数据
移动硬盘
软件系统
计算机只有硬件,没有软件,这台计算机就是一个裸机.
1.操作系统:
是一个大型软件,是一个最基本最重要的软件,它可以管理硬件和支持其它软件的运行.
作用:
(1).控制硬件,支持其它软件的运行
(2).给用户提供了3种使用硬件的方式:
图形界面
命令行窗口
系统接口
2.设备驱动程序
管理硬件.
操作系统是通过驱动程序来管理硬件的.
3.编译器(语言处理程序):
用来把程序员开发的程序 翻译 成 机器指令的.
计算机底层使用001010之类的数字序列来存储数据.计算机只认识01010这样的数据(机器指令,二进制数据,字节数据)
4.计算机程序运行的过程
print("hello")
5.编程语言
C,C++,Java,GO,C#,Python
编程语言:
是一种人与计算机之间进行交流的语言.
6.python的认识
python的特点:
1.功能强大
2.扩展性强
3.语法简单易学
4.免费开源
7.注释
注释:
用于解释说明程序的文字.
作用:
用于解释说明程序,让别人能够看懂你的程序.
注释不会被执行,只是用来给开发人员看的.
分类:
1.单行注释
注释的文字只能写成一行
格式:
# 解释的文字
可以添加在代码的上面或者右边.
快捷键: Ctrl + /
2.多行注释
注释的文字只能写成多行
格式:
'''
解释的文字
解释的文字
解释的文字
解释的文字
'''
"""
解释的文字
解释的文字
解释的文字
解释的文字
"""
什么时候添加注释?
1.代码的逻辑比较复杂难懂
2.核心代码
在python的语法规范中推荐使用的方式:
# -*- coding:utf-8 -*-
8.变量的概念
计算机执行程序的目的是 :为了处理数据.
计算机程序处理的数据往往是外界提供的.自己把数据临时存储起来,然后再处理.
在程序中如何临时存储数据?
使用 变量 临时存储数据.
从本质上讲,变量是存储中的一块区域.
9.定义变量及其使用
在内存中开辟一块区域存储数据.
定义格式:
变量名 = 数值
通过变量名来使用.
10.变量的类型(数据类型)
11. 关键字
标识符:
给变量,函数,类,文件取的名字.
标识符的命名规则:
1.必须遵守的规则
标识符由字母、下划线和数字三种组成,且数字不能开头.
而且不能是关键字.
2.开发的习惯
见名知意
a = 10
age = 10
name = "张三"
关键字:
在python语言中已经赋予了特殊的含义,已经被python语言使用了的单词.
查看关键字:
1.导入工具包:keyword
import keyword
2.调用工具包中的功能,获得关键字列表:
print(keyword.kwlist)
11.变量的类型
基本的数据类型:
数字类型:
整数:int :1 2 3
小数:float :3.14 -2.5
布尔类型:bool
比较特殊,只有两个值:True和False,非零的数字表示True,0表示False
字符串类型:str
使用双引号或者单引号引住的任何数据,都叫做字符串.
"hello" 'world' "10" "" " " "5" "&>"
高级的数据类型:
字符串
列表
元组
字典
set集合
11.不同类型数据间的运算
/ 除号
% 取余,取模
#两个整数相除
print(10 / 2) # 5.0
print(10 / 3) # 3.3333333333333335
# 取余: 如果这个数据余上2 结果为0,那么这个数一定是一个偶数
print(3 % 2)
print(10 % 2)
print("1.2")
# 字符串与整数不能相加:TypeError: must be str, not int
# print("hello"+2)
# 字符串与整数相乘:会把字符串拼接n次,这个n是整数
print("hello"*3)
# 字符串与字符串相加:这里的+号,是字符串连接符
print("hello" + "world" + "python")
12.输出
调用解释器自带的print()函数,把数据输出到控制台.
如果输出的字符串中包含了变量的值,需要在字符串中使用格式化操作符来占位.
格式化操作符:
字符串:%s
整数:%d %nd
小数:%f %.2f
不确定变量的类型时,使用%s.
如果输出的字符串中包含了多个变量的值,需要在%后面使用小括号括住多个变量,变量之间使用逗号隔开,注意变量的顺序与格式化操作符的顺序一一对应.
13.输入
从键盘上录入一个数据,并且得到这个数据.
需要调用解释器提供的一个函数input("提示语"):
这个函数可以让你在键盘上录入一个数据,并且得到这个数据.
这个函数比较特殊:
不管在键盘上录入的数据是什么类型的,这个函数得到的就一个字符串类型的数据.
14.数据类型转换
目标数据类型(数据)
例如:
a = "10"
int(a)
把字符串a 转成int类型的数字.
b = 10 # int类型
# 把数字b转成字符串类型的
str(b)
15.认识Bug
Bug是指程序中出现的不正常的情况:
1.程序出错
2.程序运行的结果不是预期的结果
出现bug的原因:
1.因为手误
2.对技术的理解不够深入
16 .Debug调试程序
调试程序: 查看程序执行的过程,找到出现bug的原因,并且修改错误.
Debug调试(断点调试):
断点:在程序中加上的一个标记;
断点调试:
在程序中加上断点,通过查看程序执行的过程,找到出现bug的原因,并且修改错误.
Debug程序时,代码执行到断点的那一行,就会停住.
停在这一行,意思是说即将执行这一行但是还没有执行.
17.关系运算符
> ,< ,== ,!=
>= ,<=
作用:用来比较两个数据之间的关系的.
比较的结果一定是一个布尔类型的值,要么是True,要么是False.
18.if语句的第一种格式
python语言中的流程控制语句:
1.顺序语句
print("A")
print("C")
print("D")
print("B")
2.条件分支语句
if语句有三种格式:
第一种格式:
if 关系表达式:
语句体
语句体:可以是一行代码,也可以是多行代码
3.循环语句
19.if语句的第二种方式
格式:
if 关系表达式:
语句体1
else:
语句体2
....
20.逻辑运算符
21.if语句的第三种格式
格式:
if 关系表达式1:
语句体1
elif 关系表达式2:
语句体2
... # 表示省略了0个或者多个elif语句
else:
语句体n+1
执行流程:
1.先执行关系表达式1,看其结果True还是False;
2.如果为True,就执行语句体1;
3.如果为False,就执行关系表达式2,看其结果True还是False;
4.如果为True,就执行语句体2;
5.如果为False,就执行下一个关系表达式,看其结果True还是False;
6.如果以上所有关系表达式的结果都是False,就执行语句体n+1;
22. if语句的嵌套的使用
在if语句的格式中在写一个if语句格式.
格式:
if 关系表达式1:
语句体1
if 关系表达式2:
语句体2
else:
语句体3
else:
语句体4
执行流程:
1.先执行关系表达式1,看其结果True还是False;
2.如果为True,就执行语句体1,然后执行关系表达式2,看其结果True还是False;
3.如果为True,就执行语句体2;
4.否则就执行 语句体3;
5.如果关系表达式1的结果为False,就执行语句体4;
23. 复合赋值运算符
+=: 使用左右两边的数据相加,得到一个结果,然后把结果赋值左边的变量.
a = 5
a -= 1 # a = a-1
24. 运算符的优先级
算术运算符
关系运算符
逻辑运算符
优先级从上往下,由高变低.
and or 的优先级是一样的.
如果想修改表达式的运算顺序,可以通过添加小括号的方式来修改.
not 的优先级是最低
25. while循环语句格式和执行流程
循环语句:
重复的执行指定的代码块;
while循环语句;
for循环语句;
while循环语句的格式:
初始化语句①
while 条件语句②:
循环体语句③
条件控制语句④
执行流程:
①②③④ - ②③④ - ②③④-...,当②的结果为False,就结束整个while循环
26.while循环练习题-求0-100之间偶数的累加和
#encoding=utf-8
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum = sum + i
i+=1
print("1~100的累积和为:%d" % sum)
27.break和continue的用法:
break:终断,结束的意思
continue:继续的,跳过本次循环,继续下一次循环;
这两个关键字只能用在循环语句中,单独使用没有意义.
28. while嵌套循环
格式:
初始化语句①
while 条件判断语句②:
循环体语句③
初始化语句
while 条件判断语句:
循环体语句
条件控制语句
条件控制语句④
29.转义字符
\n : 换行符
\ 是转义字符,可以改变某一个字符的功能.
30. 容器的概述
容器是用来存储多个数据.
可以查找容器的中某一个数据,和所有数据.
可以向容器中添加数据,修改数据,删除数据.
常见的容器:
字符串
列表
元组
字典
set集合
这几种容器都是数据类型,与前面讲的int,float,bool类似;
int,float,bool类型的变量里面只能存储一个数据;
容器类型的变量中可以存储多个数据.
31. 字符串的概述
使用双引号或者单引号引住的内容叫做字符串.
字符串中可以存储多个字符.
字符串中的每个字符都叫做一个元素;
每个元素都有自己的编号,这个编号也叫做索引,角标,下标.
索引是从0开始的,第一个元素的的索引是0,往后依次加1,
最后一个元素的索引是 "元素的个数-1".
操作字符串字符串时可以通过索引操作字符串,比如,根据索引得到里面某一个字符,或者得到某几个字符等.
32. 字符串的定义和输出
使用双引号或者单引号引住的内容叫做字符串.
打印字符串变量,打印出来的是字符串的内容.
"he'aa'llo" 'he"aa"llo'
定义格式:
变量名 = "字符串内容"
s = "hello"
print(s)
我的名字是xxx
name = "zhangsan"
print("我的名字是" + name )
33.字符串的查找,for循环遍历和替换的方法
根据索引查找字符.
s = "hello python"
s[3]
s.find(str) 表示“str”在“s”中第一次出现的索引。(找不到不会报错)
s.index(str) 表示“str”在“s”中第一次出现的索引。(找不到会报错)
s.rfind(str) 表示“str”在“s”中最后一次出现的索引。
s.rindex(str) 表示“str”在“s”中最后一次出现的索引。
s.count(str) 表示“str”在“s”中出现的次数。
s.replace(odlstr,newstr,count) 表示用新字符串替换旧字符串,count表示替换次数。
s.split(str) 表示用str分割。
s.strip() 表示删除字符串两端的空白字符。
s.isalpha() 表示判断字符串是否都是字母。
s.isdigit() 表示判断字符串是否都是数字
s.isdecimal() 表示判断字符串是否都是字母
s.alnum() 表示判断字符串是否只有数字或者字母。
s.isupper() 表示判断字符串是否全为大写字母。
s.islower() 表示判断字符串是否全为小写字母。
s.startswith() 表示判断字符串是否以()开头。
s.endswith() 表示判断字符串是否以()结尾。
s.upper() 所有字母改为大写字母。
s.lower() 所有字母改为小写字母。
34.字符串的切片
就是截取字符串
切片的语法:
字符串[开始索引:结束索引]
从开始索引的字符开始截取,以直接渠道结束索引的字符,包括开始索引的字符,但是不包括结束索引的字符.
35.字符串的步长
字符串[开始索引:结束索引:步长]
36.列表的定义及使用
列表:也是一个容器,是用来存储多个数据的,每个数据可以是任何类型的.
可以向列表中添加数据,删除数据,修改数据,查询数据.列表中的每个数据都叫做元素.
元素都有自己的编号,也叫做索引,角标,下标.
格式:
list1 = [10,30,50]
37.列表添加和删除元素的方法
list[1] = 30 表索引为“1”的元素。
list.append(数据) 添加一个元素。
list.remove(元素) 删除一个元素。
list.pop(索引) 删除指定索引的元素。
list.pop() 删除最后一个元素。
List[0] = 20 → 表示列表索引为0的元素改为20. list1 = [20,30,50]
38. 列表的嵌套
列表中的元素也可以是一个列表.
39. 元组的的定义和使用
元组也是一个容器,与列表类似,可以把它看做一个不能用于修改的列表,也就是元组只能查询.
定义元组的格式:
元组名 = (元素1,元素2,元素,...)
元素可以是任何类型的.
40. 字典的概述
字典用两列存储数据,存储的数据是一对一对的,每对数据都是一个键(key)和一值(value)组成的,叫做键值对,要想查询值,必须通过键 查询.
根据键得查询值的效率非常高.
字典中的key不能重复,value可以重复.
41.字典的定义格式
字典名 = {key1:value1,key2:value2,...}
value可以是任何类型的数据.
key通常是整数或者字符串类型的.
42.字典的查找,修改和删除键值对的方法
查找value:
字典名[key]:如果key不存在,会报错
字典名.get(key) :如果key不存在,不会报错
添加新的键值对:可以在字典中不存在
字典名[key] = value
修改value:必须保证key存在
字典名[key] = value
删除键值对:
字典名.pop(key)
del 字典名[key]
del 列表名[索引]
43.字典遍历键值对的两种方式
方式一:
1.先得到所有的key;
2.遍历key,通过key得到value;
Keys =字典名.keys()
For key in keys:
Value = 字典名.get(key)
Print(“key = %s,value = %s” % (key,value))
方式二:
- 得到所有键值对:
Items = 字典名.items()
- 遍历键值对,得到key和value
For key,value in items:
Print(key + “=” + value)
44. set集合的定义和使用
set集合与列表非常类似,但是它里面不能存储重复的数据.set集合中没有索引这个概念.
定义格式:
set集合的名字 = {元素1,元素2,元素3,...}
45. set集合的查找,修改和删除元素的方法
set.add() 添加元素
set.update(set2) 把set2中set1里没有的元素加进去
set.remove(“hello”) 删除“hello“这个元素”
46. 列表、元组、set之间的类转换
列表转元组:tuple1 = tuple(list1)
元组转列表:list2 = list(tuple1)
列表转set集合:set1 = set(list1)如果列表中有重复元素,set集合会自动删除重复的元素。
47.容器的总结
字符串:
字符串中存储的是字符.每个字符都是一个元素.
不能被修改.长度是固定的.
列表:
列表的内容可以修改;
是按照添加数据的顺序来存储数据的.
列表的长度是可以改变的.
元素可以是任何类型的.
使用[ ]定义.
元组:
是一个只能用于查询的列表.
使用( )定义.
字典:
使用键值对来存储数据.没有索引,只能通过key得到value.
使用两列存储数据.
字典通过key查询value的效率比较高.
使用{}定义.
set:
与列表类似,都是用一列存储数据的.与列表最大的区别是,不能存储重复的数据.
使用{ }定义.
48. 函数的概述
"""
把代码中重复的代码单独抽取出来,作为一个独立的代码看,然后在需要的地方调用它.
这个代码叫做函数.
函数的好处:
1.可以让代码结构变的更加简洁清晰.
2.提高代码的重复使用率.
3.可以提高开发效率.
49. 函数的定义及调用
def 函数名():定义
代码………
代码………
函数名()调用
50. 函数的调用过程
定义函数的格式:
def 函数名():
函数体
函数体就是一个代码块,可以是一行或者多行代码.
如果只是定义了函数,但是没有调用函数,函数里面的代码是不会被执行的.
调用函数的格式:
函数名()
函数调用的过程:
代码执行到这一行,就是在内存中记住这个函数,
等以后调用函数时,解释器会来到这内存中找到这个函数,
找到这个函数后,就会执行函数里面的代码.找不到就报错