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)

 

 

 

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-12-01 21:53  跃动指尖  阅读(99)  评论(0)    收藏  举报