版本说明
当前版本号[20230601]。
版本 | 修改说明 |
---|---|
20230601 | 初版 |
知识总览图
目录
第二章 python基础语法
字面量
字面量的含义
在代码中,被写在代码中的固定的值,称之为字面量。
常见的字面量类型
Python中常用的有6种值(数据)的类型
字符串
字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串。
Python中,字符串需要用双引号(")包围起来被引号包围起来的,都是字符串
如何书写
基于print语句完成各类字面量的输出
print(字面量),如:
print(666),输出整数666
print(13.14),输出浮点数13.14
print("黑色星期五"),输出字符串:黑色星期五
注释
注释的作用
注释:在程序代码中对程序代码进行解释说明的文字。注释是代码中的解释型语句,用来对代码内容进行注解,注释不是代码,不会被程序执行。
作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。
注释的分类
单行注释:以 #开头,#右边 的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用。单行注释一般用于对一行或一小部分代码进行解释
注意,#号和注释内容一般建议以一个空格隔开
多行注释: 以 一对三个双引号 引起来 ( “”" )来解释说明一段代码的作用使用方法,**引号内部均是注释,可以换行。**多行注释一般对:Python文件、类或方法进行解释
扩展面试题
-
单行注释中能否使用多行注释?
单行注释中不能使用多行注释,会产生语法错误。
-
多行注释中能否使用单行注释?
多行注释中不能使用单行注释。但是,单行注释可以用来解释或补充多行注释的内容。
-
多行注释中能否使用多行注释?
多行注释中不能再嵌套多行注释,这也会产生语法错误。
变量
什么是变量
变量:在程序运行时,能储存计算结果或能表示值的抽象概念。
简单的说,变量就是在程序运行时,记录数据用的。
变量的定义格式:变量名 = 变量值
变量的特征
变量,从名字中可以看出,表示“量”是可变的。
所以,变量的特征就是,变量存储的数据,是可以发生改变的。
变量的目的是存储运行过程的数据,而存储的目的是为了:重复使用
print语句输出多份内容:print(内容1, 内容2, …, 内容N)
练习:求钱包余额
请在程序中,定义如下变量:
•钱包余额(变量名:money),初始余额50
请通过程序计算,在购买了:
•冰淇淋10元
•可乐5元
后,钱包余额还剩余多少元。请通过print语句进行输出:
"""
•钱包余额(变量名:money),初始余额50
请通过程序计算,在购买了:
•冰淇淋10元
•可乐5元
"""
money = 50
print("当前钱包剩余:", money, "元")
money = money - 10
print("购买了冰淇淋后,还剩:", money, "元")
money = money - 5
print("购买了可乐后,还剩:", money, "元")
print("现在钱包里还剩:", money, "元")
数据类型
数据是有类型的
在学习字面量的时候,我们了解到:数据是有类型的。
目前在入门阶段,我们主要接触如下三类数据类型:
string、int、float这三个英文单词,就是类型的标准名称。
type()语句
我们可以通过type()语句来得到数据的类型:
语法:type(被查看类型的数据)
type()语句的使用方式
如下代码,int_type变量可以存储变量666的类型信息,是因为type()语句会给出结果(返回值)
以上查看的都是<字面量>的类型,也可以查看变量中存储的数据类型:
变量无类型
我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型:
查看的是:变量存储的数据的类型。因为,变量无类型,但是它存储的数据有。
我们可能会说:字符串变量。但要知道,不是变量是字符串,而是它存储了:字符串
字符串类型的不同定义方式
字符串有3种不同的定义方式:
三引号定义法,表示在一堆三个双引号的范围内,均是字符串,如下:
数据类型转换
为什么要转换类型
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等
数据类型转换,将会是我们以后经常使用的功能。
如:
- 从文件中读取的数字,默认是字符串,我们需要转换成数字类型
- 后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
- 将数字转换成字符串用以写出到外部系统等等
常见的转换语句
同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值),我们可以用print直接输出,或用变量存储结果值
类型转换注意事项
需要注意:
-
任何类型,都可以通过str(),转换成字符串
-
字符串内必须只有数字,才可以将字符串转换为数字
-
浮点数转整数会丢失精度,也就是小数部分
标识符
什么是标识符
在Python程序中,我们可以给很多东西起名字,比如:
- 变量的名字
- 方法的名字
- 类的名字,等等
这些名字,我们把它统一的称之为标识符,用来做内容的标识。
所以,标识符:是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名
标识符命名规则
Python中,标识符命名的规则主要有3类:
- 内容限定
- 大小写敏感
- 不可使用关键字
标识符命名规则 - 内容限定
标识符命名中,只允许出现:
- 英文
- 中文
- 数字
- 下划线(_)
这四类元素,其余任何内容都不被允许。
注:1. 不推荐使用中文;2. 数字不可以开头
标识符命名规则 - 大小写敏感
以定义变量为例:
Andy = “安迪1”
andy = “安迪2”
字母a的大写和小写,是完全能够区分的。
标识符命名规则 - 不可使用关键字
Python中有一系列单词,称之为关键字
关键字在Python中都有特定用途
我们不可以使用它们作为标识符
变量命名规范
学完了标识符(变量、类、方法)的命名规则后,我们在来学习标识符的命名规范。
- 变量名
- 类名
- 方法名
不同的标识符,有不同的规范。
我们目前只接触到了:变量。所以,目前学习:变量的命名规范。
- 见名知意
- 下划线命名法
- 英文字母全小写
变量命名规范 - 见名知意
变量的命名要做到:
- 明了:尽量做到,看到名字,就知道是什么意思
- 简洁:尽量在确保“明了”的前提下,减少名字的长度
变量命名规范 - 下划线命名法
多个单词组合变量名,要使用下划线做分隔。
变量命名规范 - 英文字母全小写
命名变量中的英文字母,应全部小写
运算符
算术(数学)运算符
算术运算符的演示
#求1 + 1 的时候,以下两条命令均可以使用
print("1 + 1 = %d" % (1+1))
print("1 - 1 =", 1 - 1)
赋值运算符
复合赋值运算符
复合赋值运算符的演示
num = 4
num += 5
print("num += 5 =", num)
num *= 2
print("num *= 2 =", num)
字符串扩展
字符串的三种定义方式
字符串在Python中有多种定义形式:
- 单引号定义法:name = ‘黑色星期五’
- 双引号定义法:name = “黑色星期五”
- 三引号定义法:name = “”“黑色星期五”“”
三引号定义法,和多行注释的写法一样,同样支持换行操作。
使用变量接收它,它就是字符串。
不使用变量接收它,就可以作为多行注释使用。
字符串的引号嵌套
如果我想要定义的字符串本身,是包含:单引号、双引号自身:
- 单引号定义法,可以内含双引号
- 双引号定义法,可以内含单引号
- 可以使用转移字符(\)来将引号解除效用,变成普通字符串
字符串拼接
如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成,如:
print("黑色星期五" + "吃炸鸡")
输出结果:黑色星期五吃炸鸡
不过一般,单纯的2个字符串字面量进行拼接显得很呆,一般,字面量和变量或变量和变量之间会使用拼接,如:
name = "汤姆"
print("我是:" + name)
输出结果:我是汤姆
既然,字符串和变量进行拼接,我们来完成一个小需求,定义2个变量:
- name,内容是“汤姆”
- food,内容是“炸鸡配薯条”
要求写程序通过print语句以及字符串拼接的方式输出:
name = "汤姆"
food = "炸鸡配薯条"
print("我是" + name + "爱吃" + food)
输出结果:我是汤姆爱吃炸鸡配薯条
注:
字符串无法和非字符串变量进行拼接,因为类型不一致,无法接上
就像接力赛一样,不是队友,不能接力的哦
sum01 = 3
sum02 = 5
print("考了:"+ sum01 + "分")
报错原因:字符串无法和非字符串变量进行拼接
字符串格式化
我们可以通过如下语法,完成字符串和变量的快速拼接。
其中的,%s
-
% 表示:我要占位
-
s 表示:将变量变成字符串放入占位的地方
所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置
name = "蜂蜜芥末酱"
message = "炸鸡里面有%s" % name
print(message)
输出结果:炸鸡里面有蜂蜜芥末酱
多个变量占位:变量要用括号括起来并按照占位的顺序填入
数字也能用%s占位吗?
可以的哦,这里是 将数字 转换成了 字符串 哦
也就是数字99,变成了字符串"99"被放入占位的地方
score = 99
message = "给炸鸡打%s分" % score
print(message)
输出结果:给炸鸡打99分
支持非常多的数据类型占位,最常用的是如下三类:
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位:
score = 99
name = "好吃炸鸡店"
money = 66.66
message = "我在%s里吃了%f钱,我给它打%d分" % (name,money,score)
print(message)
格式化的精度控制
细心的大家可能会发现:浮点数66.66,变成了66.660000输出
这里我们就要讲解一下,字符串格式化之“数字精度控制”
我们可以使用辅助符号"m.n"来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
示例:
•%5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成如下:用三个空格补足宽度。
•%5.2f:表示将宽度控制为5,将小数点精度设置为2
**小数点和小数部分也算入宽度计算。**如,对11.345设置了%7.2f 后,结果是:2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35
•%.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35
正如:
score = 99.5432
name = "好吃炸鸡店"
money = 66.66
message = "我在%s里吃了%3d块钱,我给它打%4.2f分" % (name,money,score)
#%3d 宽度3,补了1个空格
#宽度小于数字本身,无影响,小数点后四舍五入
print(message)
输出结果:我在好吃炸鸡店里吃了 66块钱,我给它打99.54分
字符串格式化方式2 - 快速写法
目前通过%符号占位已经很方便了,还能进行精度控制。
但还可以通过语法:f"内容{变量}"的格式来快速格式化
看如下代码
score = 99.5432
name = "好吃炸鸡店"
money = 66.66
date = "星期四"
message = f"我在{name}里吃了{money}块钱,我给它打{score}分,打算下周{date}再来吃"
print(message)
输出结果:我在好吃炸鸡店里吃了66.66块钱,我给它打99.5432分,打算下周星期四再来吃
这种写法不做精度控制,也不理会类型,适用于快速格式化字符串。
对表达式进行格式化
刚刚的演示,都是基于变量的。
可是,我想更加优雅些,少写点代码,直接对“表达式”进行格式化是否可行呢?
那么,我们先了解一下什么是表达式。
表达式:一条具有明确执行结果的代码语句
如:
1 + 1、5 * 2
就是表达式,因为有具体的结果,结果是一个数字
又或者,常见的变量定义:
name = “张三” age = 11 + 11
等号右侧的都是表达式,因为它们有具体的结果,结果赋值给了等号左侧的变量。
在无需使用变量进行数据存储的时候,我们也可以直接格式化表达式,简化代码!
print("每天有24个小时,一天就会有 %d" % (24 * 60), "分钟")
print(f"那五月总共有{24 * 60 * 30}分钟")
print("分钟类型在python是%s" %type('分钟'), "类型")
数据输入
input语句(函数)
我们前面学习过print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。
在Python中,与之对应的还有一个input语句,用来获取键盘输入。
- 数据输出:print
- 数据输入:input
使用上也非常简单:
- 使用一个变量接收(存储)input语句获取的键盘输入数据即可
- input()语句的功能是,获取键盘输入的数据
- 可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息。
- 要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型
print("欢迎来到大学教务系统,请输入你的名字")
name = input()
print("欢迎 %s" % name, "来到大学教务系统!")
输出结果:欢迎来到大学教务系统,请输入你的名字
输入:大学生
输出结果:欢迎 大学生 来到大学教务系统!
在前面的代码中,输出”欢迎来到大学教务系统,请输入你的名字“的print语句其实是多余的,input()语句其实是可以在要求使用者输入内容前,输出提示内容的哦!
name = input("欢迎来到大学教务系统,请输入你的名字")
print("欢迎 %s" % name, "来到大学教务系统!")
输出结果:欢迎来到大学教务系统,请输入你的名字
输入:在学生
输出结果:欢迎 大学生 来到大学教务系统!
示例:(其中绿色是我们手动输入的结果)
name = input("欢迎登录小程序,请输入你的名字:")
ability = input("好的,那你的级别是:")
print("欢迎 %s" % name, "来到小程序,你是尊贵的 %s" % ability,"用户,我将为你提供独家服务")