1.python-正式课
1.python 简介
1.1 计算机基础结构
1.1.1 硬件
五大组成部分:运算器、控制器、存储器、输入设备、输出设备。
  运算器:按照程序中的指令,对数据进行加工处理。
  控制器:根据程序需求,指挥计算机的各个部件协调工作。
    通常将运算器和控制器集成在中央处理器(CPU)中。
   存储器:保存各类程序的数据信息。
    内存RAM -- 容量小,速度快,临时存储数据
    硬盘HDD -- 容量大,速度慢,永久存储数据
  输入设备:外界向计算机传送信息的装置。
    例如:鼠标、键盘、扫描仪…
  输出设备:计算机向外界传送信息的装置。
    例如:显示器、音响、打印机…

1.1.2 软件

操作系统:
  管理和控制计算机软件与硬件资源的程序。
  隔离不同硬件的差异,使软件开发简单化。
  Windows,Linux,Unix。
应用软件:为了某种特定的用途而被开发的软件。
软件:程序 + 文档。
  程序是一组计算机能识别和执行的指令集合。
  文档是为了便于了解程序所需的说明性资料。
1.2 基础知识
1.2.1 python 定义
是一个免费、开源、跨平台、动态、面向对象的编程语言。
 
1.2.2 Python程序执行方式
1.2.2.1 文件式
将指令编写到.py文件,可以重复运行程序。
(1) 编写文件
(2) 打开终端
(3) 进入程序所在目录:cd 目录
(4) 执行程序: python3 文件名
1.2.3 Linux常用命令
(1) pwd:查看当前工作目录的路径
(2) cd:改变工作目录(进入到某个目录)
(3)python3 demo.py 运行python文件demo.py
1.2.4 执行过程
计算机只能识别机器码(1010),不能识别源代码(python)。

(1) 由源代码转变成机器码的过程分成两类:编译和解释。
(2) 编译:在程序运行之前,通过编译器将源代码变成机器码,例如:C语言。
  优点:运行速度快
  缺点:开发效率低,不能跨平台。
(3) 解释:在程序运行之时,通过解释器对程序逐行翻译,然后执行,例如Javascript。
  优点:开发效率高,可以跨平台;
  缺点:运行速度慢。
(4) python是解释型语言,但为了提高运行速度,使用了一种编译的方法。编译之后得到pyc文件,存储
了字节码(特定于Python的表现形式,不是机器码)。
 
2. 数据基本运算
2.1 基础知识
2.1.1 pycharm常用快捷键
(1) 移动到本行开头:home键
(2) 移动到本行末尾:end键盘
(3) 注释代码:ctrl + /
(4) 复制行:ctrl +d
(5) 删除行:shift + delete
(6) 选择列:shift + alt +鼠标左键
(7) 移动行:ctrl + shift + 上下箭头
(8) 代码格式化:ctrl+alt+l
(9)拖动代码:选中代码后左键拖拽
(10)拖动复制代码:选中代码后 ctri + 左键拖拽
2.1.2 注释
(1) 单行注释:以#号开头。
(2) 多行注释:三引号开头,三引号结尾。
2.1.3 函数
函数就像一个魔法盒子,进去一只"猴子"出来一个"大圣"
至于功能的实现方式只有函数定义者清楚;而调用者糊涂
参数是传入函数的数据,返回值是函数处理后的结果

2.1.3.1 print函数
# 1. 字面意思:打印(内容) # 2. 作用:将括号中的内容显示在终端中 # 3. 适用性:显示数据 # 4. 语法:print(内容) print("hello") print("世界")
2.1.3.2 input函数
# 1. 字面意思:结果 = 输入(提示信息) # 2. 作用:将用户在终端中输入的内容存储到程序中 # 3. 适用性:获取数据 # 4. 语法:结果 = input(提示信息) # 赋值号=:将右侧复制一份给左侧 name = input("请输入姓名:") age = input("请输入年龄:") print("欢迎," + age + "岁的" + name + "小朋友")
2.2 数据
2.2.1 变量
(1) 定义:关联一个对象的标识符。
(2) 命名:由字母、数字、下划线组成,且不能以数字开头。
不能使用关键字(蓝色),否则发生语法错误SyntaxError。
(3) 建议命名:字母小写,多个单词以下划线隔开。
(4) 赋值:创建一个变量或改变一个变量关联的数据。
(5) 语法:
  变量名 = 数据
  变量名1 = 变量名2 = 数据
  变量名1, 变量名2 = 数据1, 数据2
""" 变量 引入: 程序运行在哪里? -- 内存 程序在处理什么? -- 数据 作用: 在内存中操作数据 语法: 变量名称 = 数据 """ name01 = "小红" name02 = "小蓝" name02 = "小黄" name03 = name02
""" 变量各种写法 """ # 写法1:变量名 = 数据 name01 = "小绿" # 写法2:变量名1,变量名2 = 数据1,数据2 name01,name02 = "小紫","小橙" # 写法3:变量名1,变量名2 = 数据1,数据2 name01 = name02 = "小青"
2.2.3 核心类型
在python中变量没有类型,但关联的对象有类型。
2.2.3.1 整形int
表示整数,包含正数、负数、0。
如: -5, 100, 0
2.2.3.2 浮点型float
(1) 表示小数,包含正数、负数,0.0。
(2) 字面值:
小数:1.0 2.5
2.2.3.3 字符串str
(1) 用来记录文本信息(文字信息)。
(2) 字面值:双引号
2.2.3.4 布尔boo
(1) 用来表示真和假的类型
(2) 只有两个值:
True 表示真(条件满足或成立),本质是1
False 表示假(条件不满足或不成立),本质是0
2.3 运算
2.3.1 类型转换
(1) 转换为整形: int(数据)
(2) 转换为浮点型:float(数据)
(3) 转换为字符串:str(数据)
(4) 转换为布尔:bool(数据)
结果为False:bool(0) bool(0.0) bool(None)
(5) 混合类型自动升级:
1 + 2.14 返回的结果是 3.14
1 + 3.0 返回结果是: 4.0
# 类型转换 # 结果 = 目标类型(待转数据) # str <-> int data01 = int("8") data02 = str(8) # str <-> float data03 = float("2.3") data04 = str(2.3) # int <-> float data05 = int(-2.9) # 截断删除 print(data05) data06 = float(2) # 注意:字符串转换为其他类型时,必须"长得像"目标类型 # "1.2" --> 1 # num01 = int("1.2") # 报错
# input函数的结果一定是字符串
2.3.2 运算符
2.3.2.1 算术运算符
+ 加法
- 减法
* 乘法
/ 除法:结果为浮点数
// 整除:除的结果去掉小数部分
% 求余
** 幂运算
优先级从高到低:
()
**
* / % //
+ -
""" 算数运算符 + - * 幂运算** 小数商/ 整数商// 余数% """ data01 = 5 data02 = 2 data03 = data01 ** data02 # 25 print(6 / 3) # 2.0 print(7 // 3) # 2 print(7 % 3) # 1 print(6 % 3) # 0 total_second = 123 print(total_second // 60) # 2分钟 print(total_second % 60) # 零3秒
# 任何整数与10取余都可以得到各位
print(17 % 10)
print(175 % 10)
2.3.2.2 增强运算符
y += x 相当于 y = y + x
y -= x 相当于 y = y - x
y *= x 相当于 y = y * x
y /= x 相当于 y = y / x
y //= x 相当于 y = y // x
y %= x 相当于 y = y % x
y **= x 相当于 y = y ** x
data01 = 10 # data01 = data01 + 5 data01 += 5 # 累加 print(data01) # 15
2.3.2.3 比较运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
返回布尔类型的值
比较运算的数学表示方式:0 <= x <= 100
""" bool 布尔运算 bool类型: 真的True 假的False 比较运算符:等于 == 不等于!= > < >= <= """ # 条件: 输入的性别是男 print(input("请输入性别:") == "男") # 条件: 成年了 print(int(input("请输入年龄:")) > 17) # 条件:80 ~ 成绩 ~ 90 print(80 <= int(input("请输入成绩:")) < 90) # 比较运算的数学表示方式:0 <= x <= 100
2.3.2.4 逻辑运算符
(1) 与and
  表示并且的关系,一假俱假。
True and True # True True and False # False False and True # False False and False # False
(2) 或or
  表示或者的关系,一真俱真
True or True # True True or False # True False or True # True False or False # False
(3) 非 not
  表示取反
not True # 返回False not False # 返回True
(4) 短路运算
  一但结果确定,后面的语句将不再执行。
2.3.2.5 优先级
高到低:
算数运算符
比较运算符
增强运算符
逻辑运算符
3. 语句
3.1 行
(1) 物理行:程序员编写代码的行。
(2) 逻辑行:python解释器需要执行的指令。
(3) 建议:
  一个逻辑行在一个物理行上。
  如果一个物理行中使用多个逻辑行,需要使用分号;隔开。
(4) 换行:
  如果逻辑行过长,可以使用隐式换行或显式换行。
  隐式换行:所有括号的内容换行,称为隐式换行
  括号包括: () [] {} 三种
  显式换行:通过折行符 \ (反斜杠)换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。
""" 行 """ # 3个物理行,3个逻辑行 a = 1 b = 2 c = a + b # 1个物理行,3个逻辑行(不建议) a = 1;b = 2;c = a + b # 3个物理行,1个逻辑行 # \折行符:通知CPU,下一行也是本行指令 a = 1 + 2 + \ 3 + 4 + 5 \ + 6 + 7 # 括号内的代码可以自动换行 b = (1 + 2 + 3 + 4 + 5 + 6 + 7) # 代码可读性(代码是给人看的) print( int(input("请输入年龄:")) > 25 and int(input("请输入身高:")) < 170 )
3.2 选择语句
3.2.1 if else语句
(1) 作用:
  让程序根据条件有选择性的执行语句。
(2) 语法:
""" 写法1 if 条件: 满足条件执行的代码 else: 不满足条件执行的代码 写法2 if 条件1: 满足条件1执行的代码 elif 条件2: 不满足条件1但满足条件2执行的代码 else: 以上条件都不满足 """
(3) 说明:
  elif 子句可以有0个或多个。
else 子句可以有0个或1个,且只能放在if语句的最后。
if input("请输入性别:") == "男": print("您好,先生") else: print("您好,女士") sex = input("请输入性别:") if sex == "男": print("您好,先生") elif sex == "女": print("您好,女士") else: # 属于上面挨着的if print("性别未知") stage_number = int(input("请输入阶段:")) if stage_number == 1: print("Python语言核心编程") elif stage_number == 2: print("Python高级软件技术") elif stage_number == 3: print("Web 全栈") elif stage_number == 4: print("人工智能") else: print("暂无对应课程")
(4) 嵌套
# if 语句可以层层嵌套, if 条件1: ... else: if 条件2: 主体逻辑 # 为增加程序可读性,if一般嵌套2~3层 # 通过短路思想:减少程序嵌套关系(增加可读性) if 条件1: break/continue if 条件2: break/continue if 条件3: break/continue 主体逻辑
3.3 循环语句
3.3.1 while语句
(1) 作用:
  可以让一段代码满足条件,重复执行。
(2) 语法: 写法1
""" while 循环 写法1:延长程序的生命 while True: 循环体 if 退出条件: break """ # 死循环:循环条件永远满足 while True: if input("请输入性别:") == "男": print("您好,先生") else: print("您好,女士") if input("请输入q键退出:") == "q": break print("后续逻辑")
写法2
""" while 循环计数 三大要素 开始、结束、间隔 """ # 手工人为执行 # print("跑圈") # print("跑圈") # print("跑圈") # 程序循环执行 count = 0 # 循环前 while count < 3: # 循环中 print("跑圈") count += 1 print("结束喽") # 循环后
3.3.2 for语句
(1) 作用:
  用来遍历可迭代对象的数据元素。
  可迭代对象是指能依次获取数据元素的对象,例如:容器类型。
(2) 语法: 写法1
""" for循环 作用: 拿可迭代对象中的元素 目前只有字符串 语法 for 变量 in 可迭代对象: 变量记录的是可迭代对象中的元素 """ message = "我爱Python编程" for item in message: print(item)
3.3.2.1 range 函数
(1) 作用:
  用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。
(2) 语法:
  range(开始点,结束点,间隔)
(3) 说明:
  函数返回的可迭代对象可以用for取出其中的元素
  返回的数字不包含结束点
  开始点默认为0
  间隔默认值为1
for 写法2
""" range函数 整数生成器,产生一个范围内的整数 """ # 语法1:range(开始,结束,间隔) # 注意:不包含结束 for item in range(1, 5, 2): print(item) # 语法2:range(开始,结束) # 注意:间隔默认为1 for item in range(1, 5): print(item) # 语法3:range(结束) # 注意:开始默认为0 for item in range(5): print(item) # 语法4:range(开始,结束,间隔) 倒序 # 倒序 间隔为负 # 注意:输出为 8,7,6 for item in range(8, 5, -1): print(item)
3.3.3 while\for嵌套
# while\for语句可以嵌套多层 # 为增加可读性,可用break\continue短路逻辑,减少嵌套
3.4 跳转语句
3.4.1 break 语句
(1) 跳出循环体,后面的代码不再执行。
(2) 可以让while语句的else部分不执行。
3.4.2 continue 语句
(1) 跳过本次,继续下次循环。
total_number = 0 for item in range(1,101): if item % 3 != 0: continue # 跳过(继续下次循环) # break # 跳出(结束所有循环) total_number += item print(total_number)
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号