Python核心

1. 前言

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0sIeTfkc-1628056949374)(Python核心.assets/image-20210311131700759.png)]

1.1 获取资源

浏览器输入:code.tarena.com.cn

账号:tarenacode

密码:code_2013

地址:AIDCode/aid2105/01_month01/to_student_for_month01.zip

1.2 课程介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aabS2hjO-1628056949377)(Python核心.assets/image-20210311131620862.png)]

1.3 学习理念

1.3.1 弱语法,重本质

是一种弱化语言规则,注重程序原理的学习过程。

语法是表象,只有了解深层机理,才能灵活运用。

学习编程要深入内存,剖析原理,才能看透语法。

就像太极“用意不用力,先在心后在身”的道理。

1.3.2 是技术,更艺术

编程是一门技术,但更是一种艺术。

写出高质量的代码(功能性、维护性,灵活性),享受编程所带来的乐趣。

1.3.3 项目化,实战化

2048核心算法贯穿Python核心。

疫情信息管理系统贯穿面向对象。

集成操作框架贯穿Python高级。

二手房信息管理系统贯穿全阶段。

1.4 学习方法

1.4.1 当天知识必须理解

What 是什么,即理解知识点的定义。

Why 为什么,即理解知识点的作用。

Where 在哪里,即理解知识点的适用性。

How 如何使用,即理解知识点的语法。

1.4.2 当天练习必须会做

课堂演示用眼看 demo01、demo02 …

课堂练习动手敲 exercise01、exercise02 …

独立完成才算会做。

2. Python 简介

2.1 计算机基础结构

2.1.1 硬件

1944年,美籍匈牙利数学家冯·诺依曼提出计算机基本结构。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wpihmEAv-1628056949379)(Python核心.assets/image-20210311131810540.png)]

五大组成部分:运算器、控制器、存储器、输入设备、输出设备。

– 运算器:按照程序中的指令,对数据进行加工处理。

– 控制器:根据程序需求,指挥计算机的各个部件协调工作。

通常将运算器和控制器集成在中央处理器(CPU)中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ks5kT8ng-1628056949380)(Python核心.assets/image-20210311131824201.png)]

– 存储器:保存各类程序的数据信息。

​ 内存RAM – 容量小,速度快,临时存储数据

​ 硬盘HDD – 容量大,速度慢,永久存储数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-44SYE7KV-1628056949381)(Python核心.assets/image-20210311131832770.png)]

输入设备:外界向计算机传送信息的装置。

​ 例如:鼠标、键盘、扫描仪…

输出设备:计算机向外界传送信息的装置。

​ 例如:显示器、音响、打印机…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jsAh97H5-1628056949382)(Python核心.assets/image-20210311131845525.png)]

2.1.2 软件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2F61I4Iu-1628056949383)(Python核心.assets/image-20210311131858279.png)]

操作系统:

​ – 管理和控制计算机软件与硬件资源的程序。

​ – 隔离不同硬件的差异,使软件开发简单化。

​ – Windows,Linux,Unix。

应用软件:为了某种特定的用途而被开发的软件。

软件:程序 + 文档。

​ – 程序是一组计算机能识别和执行的指令集合。

​ – 文档是为了便于了解程序所需的说明性资料。

2.2 基础知识

2.2.1 Python 定义

是一个免费、开源、跨平台、动态、面向对象的编程语言。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PSwx3HGR-1628056949383)(Python核心.assets/image-20210311131912471.png)]

2.2.2 Python程序的执行方式

2.2.2.1 交互式

在命令行输入指令,回车即可得到结果。

(1) 打开终端

(2) 进入交互式:python3

(3) 编写代码:print(“hello world”)

(4) 离开交互式:exit()

2.2.2.2 文件式

将指令编写到.py文件,可以重复运行程序。

(1) 编写文件

(2) 打开终端

(3) 进入程序所在目录:cd 目录

(4) 执行程序: python3 文件名

2.2.3 Linux常用命令

(1) pwd:查看当前工作目录的路径

(2) cd:改变工作目录(进入到某个目录)

练习:

(1) 在指定目录创建python文件.

–目录:/home/tarena/month01

–文件名:exercise01.py

(2) 在文件中写入:print(“你好,世界!”)

(3) 运行python程序

2.2.4 执行过程

计算机只能识别机器码(1010),不能识别源代码(python)。

(1) 由源代码转变成机器码的过程分成两类:编译和解释。

(2) 编译:在程序运行之前,通过编译器将源代码变成机器码,例如:C语言。

– 优点:运行速度快

– 缺点:开发效率低,不能跨平台。

(3) 解释:在程序运行之时,通过解释器对程序逐行翻译,然后执行,例如Javascript。

– 优点:开发效率高,可以跨平台;

– 缺点:运行速度慢。

(4) python是解释型语言,但为了提高运行速度,使用了一种编译的方法。编译之后得到pyc文件,存储了字节码(特定于Python的表现形式,不是机器码)。

源代码 – 编译 --> 字节码 – 解释 --> 机器码

|————1次———|

2.2.5 解释器类型

(1) CPython(C语言开发)

(2) Jython (java开发)

(3) IronPython (.net开发)

3. 数据基本运算

3.1 基础知识

3.1.1 pycharm常用快捷键

"""
    创建文件:exercise03
    汇率转换器
"""

# 1. 获取数据 - 美元
usd = input("请输入美元:")
# 2. 逻辑处理 - 美元 * 6.99
cny = int(usd) * 6.99
# 3. 显示结果 - xx美元是xx人民币
print(usd + "美元是" + str(cny) + "人民币")

(1) 移动到本行开头:home键

(2) 移动到本行末尾:end键盘

(3) 注释代码:ctrl + /

(4) 复制行:ctrl +d

(5) 删除行:shift + delete

(6) 选择列:shift + alt +鼠标左键

(7) 移动行:ctrl + shift + 上下箭头

(8) 代码格式化:ctrl+alt+l

3.1.2 注释

给人看的,通常是对代码的描述信息。

(1) 单行注释:以#号开头。

(2) 多行注释:三引号开头,三引号结尾。

3.1.3 函数

表示一个功能,函数定义者是提供功能的人,函数调用者是使用功能的人。

(1) print(数据) 作用:将括号中的内容显示在控制台中

print("你好")
print("世界")

(2) 变量 = input(“需要显示的内容”) 作用:将用户输入的内容赋值给变量

name = input("请输入姓名:")
age = input("请输入年龄:")
print(name + "的年龄是:" + age + ".")

练习1: 在终端中显示古诗“登高”

效果:

​ 登高

​ 作者:杜甫

风急天高猿啸哀,渚清沙白鸟飞回。

无边落木萧萧下,不尽长江滚滚来。

万里悲秋常作客,百年多病独登台。

艰难苦恨繁霜鬓,潦倒新停浊酒杯。

练习2:判断英文句子成分:I kiss you

效果:

请输入I kiss you的主语:I

请输入I kiss you的谓语:kiss

请输入I kiss you的宾语:you

您输入的主语是:I,谓语是:kiss,宾语是:you

3.2 数据

3.2.1 变量

(1) 定义:关联一个对象的标识符。

(2) 命名:必须是字母或下划线开头,后跟字母、数字、下划线。

​ 不能使用关键字(蓝色),否则发生语法错误SyntaxError。

(3) 建议命名:字母小写,多个单词以下划线隔开。

                   class_name = "xxx"

(4) 赋值:创建一个变量或改变一个变量关联的数据。

(5) 语法:

​ 变量名 = 数据

​ 变量名1 = 变量名2 = 数据

​ 变量名1, 变量名2 = 数据1, 数据2

# 创建变量
name01 = "孙悟空"
name02 = "唐僧"
name03 = name01 + name02
# 修改变量
name01 = "悟空"
print(name03)
# 变量赋值变量
name04 = name01
print(name04)

3.2.2 删除语句

(1) 语法:

name01 = "悟空"
name02 = name01
del name01, name02

(2) 作用:

用于删除变量,同时解除与对象的关联。

如果可能则释放对象。

(3) 自动化内存管理的引用计数:

每个对象记录被变量绑定(引用)的数量,当为0时被销毁。

3.2.3 核心类型

在python中变量没有类型,但关联的对象有类型。

3.2.3.1 整形int

(1) 表示整数,包含正数、负数、0。

​ 如: -5, 100, 0

(2) 字面值:

​ 十进制:每位用十种状态计数,逢十进一,写法是0~9。

num01 = 10

​ 二进制:每位用二种状态计数,逢二进一,写法是0b开头,后跟0或者1。

num02 = 0b10

​ 八进制:每位用八种状态计数,逢八进一,写法是0o开头,后跟0~7。

num03 = 0o10

​ 十六进制:每位用十六种状态计数,逢十六进一,写法是0x开头,后跟09,AF,a~f

num04 = 0x10
3.2.3.2 浮点型float

(1) 表示小数,包含正数、负数,0.0。

(2) 字面值:

​ 小数:1.0 2.5

​ 科学计数法:

​ e/E (正负号) 指数

​ 1.23e-2 (等同于0.0123)

​ 1.23456e5(等同于123456.0)

# 小数
num01 = 1.23

# 科学计数法
num02 = 1e-5
print(0.00001)
3.2.3.3 字符串str

​ (1) 用来记录文本信息(文字信息)。

​ (2) 字面值:双引号

3.2.3.4 布尔bool

​ (1) 用来表示真和假的类型

​ (2) 只有两个值:

​ True 表示真(条件满足或成立),本质是1

​ False 表示假(条件不满足或不成立),本质是0

result = input("请输入您的职业:") == "老师"
print(result) # 输入老师,结果True;输入其他,结果False

3.3 运算

3.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("3")
# int -> str
data02 = str(5)

# str -> float
data03 = float("1.2")
# float -> str
data04 = str(1.2)

# int -> float
data05 = float(250)
# float -> int
data06 = int(1.9)
print(data06)  # 1 向下取整(截断删除)

# 注意:字符串转换为其他类型时,
# 必须是目标类型的字符串表达形式
# print(int("10.5")) # 报错
# print(float("abc"))# 报错

练习:在终端中输入商品单价、购买的数量和支付金额。计算应该找回多少钱。

效果:

请输入商品单价:5

请输入购买数量:3

请输入支付金额:20

应找回:5.0

3.3.2 运算符

3.3.2.1 算术运算符

+ 加法

- 减法

* 乘法

/ 除法:结果为浮点数

// 整除:除的结果去掉小数部分

% 求余

** 幂运算

优先级从高到低:

()

**

  • / % //

+ -

练习1:在终端中输入一个疫情确诊人数再录入一个治愈人数,打印治愈比例

格式:治愈比例为xx%

效果:

请输入确诊人数:500

请输入治愈人数:495

治愈比例为99.0%

练习2:古代的秤,一斤十六两。在终端中获取两,计算几斤零几两。

效果:

请输入总两数:100

结果为:6斤4两

练习3:

匀变速直线运动的速度与位移公式:

位移 = 初速度 × 时间 + 加速度 * 时间的平方 / 2

已知(在终端中录入):位移、时间、初速度

计算:加速度

效果:

请输入距离:100

请输入初速度:6

请输入时间:10

加速度是:0.8

3.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 + 5
# print(data01) # 10
data01 += 5   # data01 = data01 + 5
print(data01)  # 15

练习:在终端中输入一个四位整数,计算每位相加和。

例如:录入1234,打印1+2+3+4结果

效果:

请输入四位整数:1234

结果是:10

3.3.2.3 比较运算符

< 小于

<= 小于等于

> 大于

>= 大于等于

== 等于

!= 不等于

返回布尔类型的值

比较运算的数学表示方式:0 <= x <= 100

练习1:写出下列代码表达的命题含义

    print(666 == "666")
    print(input("你爱我吗? ") == "爱")
    print(float(input("请输入你的身高:")) > 170)

练习2: 根据命题写出代码

输入的是正数

输入的是月份

输入的不是偶数

3.3.2.4 逻辑运算符

(1) 与and

表示并且的关系,一假俱假。

示例:

True and True # True

True and False # False

False and True # False

False and False # False

int(input("请输现金:")) > 100000 and input("请输房产:") == "有"

(2) 或or

表示或者的关系,一真俱真

示例:

True or True # True

True or False # True

False or True # True

False or False # False

int(input("请输现金:")) > 100000 and input("请输房产:") == "有"

(3) 非 not

表示取反

例如:

not True # 返回False

not False # 返回True

练习:根据命题写出代码

年龄大于25 并且 身高小于170

职位是高管 或者 年薪大于500000

(4) 短路运算

一但结果确定,后面的语句将不再执行。

3.3.2.5 身份运算符

(1) 语法:

x is y

x is not y

(2) 作用:

is 用于判断两个对象是否是同一个对象,是时返回True,否则返回False。

is not 的作用与is相反

3.3.2.6优先级

高到低:

​ 算数运算符

​ 比较运算符

​ 增强运算符

​ 身份运算符

​ 逻辑运算符

4. 语句

4.1 行

(1) 物理行:程序员编写代码的行。

(2) 逻辑行:python解释器需要执行的指令。

(3) 建议:

​ 一个逻辑行在一个物理行上。

​ 如果一个物理行中使用多个逻辑行,需要使用分号;隔开。

(4) 换行:

​ 如果逻辑行过长,可以使用隐式换行或显式换行。

​ 隐式换行:所有括号的内容换行,称为隐式换行

​ 括号包括: () [] {} 三种

​ 显式换行:通过折行符 \ (反斜杠)换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。

# 4个物理行 4个逻辑行
a = 1
b = 2
c = a + b
print(c)

# 1个物理行 4个逻辑行(不建议)
a = 1;b = 2;c = a + b;print(c)

# 4个物理行 1个逻辑行
# -- 换行符
d = 1+\
    2+\
    3+4\
    +5+6

# -- 括号
e = (1+2+
     3+4
     +5+
     6)

4.2 选择语句

4.2.1 if elif 语句

(1) 作用:

让程序根据条件选择性的执行语句。

(2) 语法:

  if 条件1:
     语句块1
  elif 条件2:
     语句块2
  else:
     语句块3

(3) 说明:

elif 子句可以有0个或多个。

else 子句可以有0个或1个,且只能放在if语句的最后。

(4) 演示:

number = int(input("请输入数字:"))
if number > 0:
    print("正数")
elif number < 0:
    print("负数")
else:
    print("0")

练习1:

如果满足 职位是高管 或者 年薪大于50000的 条件 则显示“娶你”

否则显示”继续努力 ”

练习2:

在终端中输入性别

打印"您好先生" “您好女士” “未知”

练习3:

在终端中输入课程阶段数,显示课程名称

效果:

输入: 输出:

​ 1 Python语言核心编程

​ 2 Python高级软件技术

​ 3 Web 全栈

​ 4 项目实战

​ 5 数据分析、人工智能

练习4:

在终端中录入4个同学身高,打印最高的值.

算法:

170 160 180 165

假设第一个就是最大值

使用假设的和第二个进行比较, 发现更大的就替换假设的

使用假设的和第三个进行比较, 发现更大的就替换假设的

使用假设的和第四个进行比较, 发现更大的就替换假设的

最后,假设的就是最大的.

效果:

请输入第1个同学身高:170

请输入第2个同学身高:160

请输入第3个同学身高:180

请输入第4个同学身高:165

最高的同学:180

练习5:

根据心理年龄与实际年龄,打印智商等级。

智商IQ = 心理年龄MA 除以 实际年龄CA 乘以 100

天才:140以上(包含)

超常:120-139之间(包含)

聪慧:110-119之间(包含)

正常:90-109之间(包含)

迟钝:80-89之间(包含)

低能:80以下

练习6:

在终端中输入月份,打印相应的天数.

1 3 5 7 8 10 12 有 31天

2 有 29天

4 6 9 11 有 30天

超过月份提示月份有误

效果:

请输入月份:10

31天

4.2.2 真值表达式

if 100:
	print("真值")
# 等同于
if bool(100):
	print("真值")

练习:在终端中输入一个整数,如果是奇数为变量state赋值"奇数",否则赋值"偶数"。

效果:

​ 请输入数字:6

​ state变量存储的是:偶数

4.2.3 条件表达式

(1) 语法:变量 = 结果1 if 条件 else 结果2

value = 1 if input("请输入性别:") == "男" else 0

(2) 作用:根据条件(True/False) 来决定返回结果1还是结果2。

练习:

​ 在终端中输入一个年份,如果是闰年为变量day赋值29,否则赋值28。

​ 闰年条件:年份能被4整除但是不能被100整除,或者年份能被400整除

效果:

​ 请输入年份:2020

​ 2020年的2月有29天

4.3 循环语句

4.3.1 while语句

(1) 作用:

可以让一段代码满足条件,重复执行。

(2) 语法:

while 条件:
    # 满足条件执行的语句
else:
    # 不满足条件执行的语句

(3) 说明:

else子句可以省略。

在循环体内用break终止循环时,else子句不执行。

count = 0  # 1. 开始 
while count < 3:  # 2. 结束
    print(count)  # 0  1  2
    count += 1  # 3. 间隔

练习1:

让下列代码重复执行,输入y继续(不输入y则退出)

sex = input("请输入性别:")
if sex == "男":
      print("您好先生")
elif sex == "女":
     print("您好女士")
else:
     print("未知")

练习2:

在终端中显示0 1 2 3

在终端中显示2 3 4 5 6

在终端中显示1 3 5 7

在终端中显示8 7 6 5 4

在终端中显示-1 -2 -3 -4 -5

练习3:

在终端中循环录入5个成绩,

最后打印平均成绩(总成绩除以人数)

效果:

请输入成绩:98

请输入成绩:83

请输入成绩:90

请输入成绩:99

请输入成绩:78

平均分:89.6

练习4:

一张纸的厚度是0.01毫米

请计算,对折多少次超过珠穆朗玛峰(8844.43米)

思路:

数据:厚度、高度、次数

算法:厚度*=2 次数+=1

练习5:

程序产生1个,1到100之间的随机数。

让玩家重复猜测,直到猜对为止。

每次提示:大了、小了、恭喜猜对了,总共猜了多少次。

效果:

请输入要猜的数字:50

大了

请输入要猜的数字:25

小了

请输入要猜的数字:35

大了

请输入要猜的数字:30

小了

请输入要猜的数字:32

恭喜猜对啦,总共猜了5次

4.3.2 for 语句

(1) 作用:

用来遍历可迭代对象的数据元素。

可迭代对象是指能依次获取数据元素的对象,例如:容器类型。

(2) 语法:

for 变量列表 in 可迭代对象:
    # 语句块1
  else:
    # 语句块2

(3) 说明:

else子句可以省略。

在循环体内用break终止循环时,else子句不执行。

message = "我是齐天大圣孙悟空"
for item in message:
    print(item)  

练习:

在终端中输入任意整数,计算累加和.

“1234” -> “1” -> 累加 1

效果:

请输入一个整数:12345

累加和是 15

range 函数

(1) 作用:

​ 用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。

(2) 语法:

​ range(开始点,结束点,间隔)

(3) 说明:

函数返回的可迭代对象可以用for取出其中的元素

返回的数字不包含结束点

开始点默认为0

间隔默认值为1

# 写法1:range(开始,结束,间隔)
# 注意:不包含结束值
for item in range(1, 3, 1):
    print(item)

# 写法2:range(开始,结束)
# 注意:间隔默认为1
for item 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你想过可以通过一本书就学会Python吗?《Head First Python(中文版)》超越枯燥的语法和甩法手册,通过一种独特的方法教你学习这种语言。你会迅速掌握Python的基础知识,然后转向持久存储、异常处理、Web开发、SQLite、数据加工和lGoogle App Engine。你还将学习如何为Android编写移动应用,这都要归功于Python为你赋予的强大能力。本书会提供充分并且完备的学习体验,帮助你成为一名真正的Python程序员。 作者巴里觉得你的时间相当宝贵,不应当过多地花费在与新概念的纠缠之中。通过应用认知科学和学习理论的最新研究成果,《Head First Python(中文版)》可以让你投入一个需要多感官参与的学习体验,这本书采用丰富直观的形式使你的大脑真正开动起来,而不是长篇累牍地说教,让你昏昏欲睡。 Python核心编程 ·学习专业的Python风格、最佳实践和好的编程习惯; ·加强对Python对象、内存模型和Python面向对象特性的深入理解; ·构建更有效的Web、CGI、互联网、网络和其他客户端/服务器架构应用程序及软件; ·学习如何使用Python中的Tkinter和其他工具来开发自己的GUI应用程序及软件; ·通过用C等语言编写扩展来提升Python应用程序的性能,或者通过使用多线程增强I/0相关的应用程序的能力; ·学习Python中有关数据库的API,以及如何在Python中使用各种不同的数据库系统,包括MySQL、Postgres和 SQLite。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值