字面量
掌握字面量的含义
在代码中,被写下来的的固定的值, 称之为字面量
了解常见的字面量类型
Python中常用的有6种值(数据)的类型

字符串(string)
- 又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串
- Python中, 字符串需要用双引号("")包围起来, 被引号包围起来的,都是字符串


整数和小数

基于print语句完成各类字面量的输出

注释
注释: 在程序代码中对程序代码进行解释说明的文字。
注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。


单行注释 :以 #开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用

多行注释: 以 一对三个双引号引起来("""注释内容""") 来解释说明一段代码的作用和使用方法

变量
变量: 在程序运行时,能储存计算结果或能表示值的抽象概念。
- 2简单的说,变量就是在程序运行时,记录数据用的

- 变量,从名字中可以看出,表示"量"是可变的。
- 所以,变量的特征就是,变量存储的数据,是可以发生改变的

-
使用变量的目的是存储数据, 方便重复使用
-
练习
"""
变量的基本使用
"""定义变量
money = 50
print(money)变量的重新赋值
money = 100
print(money)数据复用
money = money +10
print(money)print的作用就是打印内容
支持多内容输出
print("money的值是:", money)

数据类型
在学习字面量的时候,我们了解到: 数据是有类型的。
目前在入门阶段,我们主要接触如下三类数据类型:

我们可以通过type()语句来得到数据的类型
语法: type(被查看类型的数据)
- 在print语句中,直接输出类型信息:

- 用变量存储type()的返回值:

- 查看的都是<字面量>的类型,能查看变量中存储的数据类型吗?

变量有类型吗?
我们通过 type(变量) 输出类型,这是查看的是 变量存储的数据的类型。
- 变量无类型,但是它存储的数据有类型
- 我们可能会说: 字符串变量, 但要知道,不是变量是字符串,而是变量的数据是字符串

数据类型转换
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等
数据类型转换,将会是我们以后经常使用的功能。如:
- 从文件中读取的数字,默认是字符串,我们需要转换成数字类型
- 后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
- 将数字转换成字符串用以写出到外部系统
常见的转换语句

- 同前面学习的type()语句一样, 这三个语句,都是带有结果的(返回值)
- 我们可以用print直接输出 或 用变量存储结果值
数据互转练习
# 数字转字符串
t1 = str("123")
print(t1)
t2 = str("123.06")
print(t2)
# 整数和小数互转
print(float(123)) # 整数转小数正常
print(int(123.99)) # 小数转整数会丢失精度, 小数部分被舍弃
# 字符串转数字
t3 = int("123")
t4 = float("3.14")
print(t3)
print(t4)
# 错误的转换
print(int("hi666"))
print(float("hi666"))

类型转换不是万能的,毕竟强扭的瓜不会甜,我们需要注意:
- 任何类型,都可以通过str(),转换成字符串
- 字符串内必须全部是数字才能转换为数字类型

标识符
什么是标识符
在Python程序中,我们可以给很多东西起名字,比如:
- 变量的名字
- 方法的名字
- 类的名字,等等
这些名字,我们把它统一的称之为标识符,用来做内容的标识。
所以,标识符:
是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
既然要起名字,就会有对应的限制
Python中,标识符命名的规则主要有3类:
- 内容限定, 标识符命名中,只允许出现
- 英文
- 中文 (不推荐使用中文)
- 数字 (数字不可以开头)
- 下划线
- 其余任何内容都不被允许。
- 大小写敏感
- 字母a的大写和小写,是完全能够区分的。

- 不可使用关键字
- Puthon中有一系列单词, 称之为关键字
- 关键字在Puthon中都有特定用途, 我们不可以使用它们作为标识符

标识符的命名规范
不同的标识符,有不同的规范,
- 变量名
- 类名
- 方法名
我们目前只接触到了变量。所以,目前学习: 变量的命名规范
- 见名知意: 语意明确, 尽量简短




- 下划线命名法
- 多个单词组合变量名,要使用下划线做分隔


- 英文字母全小写
- 命名变量中的英文字母,应全部小写


运算符
算术(数学)运算符

赋值运算符

复合赋值运算符

字符串扩展
字符串的三种定义方式
字符串在Python中有多种定义形式:

- 三引号定义法,和多行注释的写法一样,同样支持换行操作
- 使用变量接收它,它就是字符串
- 不使用变量接收它,就可以作为多行注释使用。
字符串的引号嵌套
如果我想要定义的字符串本身,是包含单引号、双引号自身呢? 如何写?
-
单引号定义法,可以内含双引号
-
双引号定义法,可以内含单引号
-
三引号定义法, 可以包含单引号和双引号
-
可以使用转义字符 (\) 来将引号解除效用,变成普通字符串
字符串的嵌套
1.外双内单
name1 = "'张飞'"
print(name1)2.外单内双
name2 = '"李逵"'
print(name2)3.三引号定义
name3 = """今天看了一本书"哈利波特",其中波特的'魔法棒'很野..."""""
print(name3)4.转义字符 ()
address1 = ""深圳石岩"" # 使用转义字符取消 "的特殊功能
print(address1)
address2 = ""深圳\n石岩"" # 使用转义字符增加 n的换行功能
print(address2)

字符串拼接
如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成,如:
-
+号用于数字就是数学计算, +号用于字符串就是拼接
-
单纯的2个字符串字面量进行拼接显得很呆, 一般,字面量和变量或变量和变量之间会使用拼接
-
字符串无法和非字符串变量进行拼接, 因为类型不一致, 要进行类型转换
+号左右都必须是字符串
name = "周杰伦"
age = 18
info = "我是" + name + ",今年" + str(age) + "岁"
print(info) -
字符串乘以数字,可以做到将字符申复制多少份前后拼接到一起
print("_"*10)
-
()表示内部的内容是整体,哪怕换行了也是整体
()调整代码格式
name = "周杰伦"
age = 18
height = 175.5
info = ("我是" + name + ",今年" +
str(age) + "岁,身高:" +
str(height) + "cm")
print(info)

字符串格式化-%占位符格式化
我们可以通过如下语法,完成字符串和变量的快速拼接

- 其中的,%s
- % 表示我要占位
- s 表示将变量变成字符串放入占位的地方
- 综合起来的意思就是: 我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置
- 数字类型也可以用 %s 占位, 会把数字转成字符串进行拼接

- 如果有多个变量占位, 变量要用括号括起来, 并按照占位的顺序填入

Python中, 支持非常多的数据类型占位, 最常用的是如下三类

占位符的使用
# 占位符的使用
name = "周杰伦"
age = 18
height = 175.5
money = 100
debt = 10
info = "我是%s, 今年%d岁, 身高%f, 账户余额%d, 欠款%d, 资产%d" % (name, age, height, money, debt, money-debt)
print(info)

字符串格式化中数字精度控制
我们可以使用辅助符号 "m.n" 来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用), 如果设置的宽度小于数字自身,不生效
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
示例:
- %5d:
- 表示将整数的宽度控制在5位,如数字11,就会变成: [空格][空格][空格]11,用三个空格补足宽度。
- %5.2f:
- 表示将宽度控制为5,将小数点精度设置为2, 小数点和小数部分也算入宽度计算。
- 对11.345设置了%7.2f后,结果是: [空格][空格]11.35。
- 2个空格补足宽度,小数部分限制2位精度后,四舍五入为.35
- %.2f:
- 表示不限制宽度,只设置小数点精度为2,
- 如11.345 设置%.2f后,结果是11.35
练习

字符串格式化-f_format格式化
目前通过%符号占位已经很方便了,还能进行精度控制。
可是追求效率和优雅的Python,是否有更加优雅的方式解决问题
语法: f"内容{变量}" 的格式来快速格式化
- 语法说明
- 字符串之前使用进行f标记
- 变量使用{}包起来即可

- 特点: 不理会类型, 全部作为字符串输出
- 控制精度

对表达式进行格式化
表达式: 一条具有明确执行结果的代码语句
如:
1+1、5*2,就是表达式,因为有具体的结果,结果是一个数字
又或者,常见的变量定义:
name="张三" age=11+11
等号右侧的都是表达式呢,因为它们有具体的结果,结果赋值给了等号左侧的变量。
对于字符串格式化,可以直接格式化一个表达式

- 在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码哦
股价计算案例

-
红色框框都是变量要使用格式化的方式拼接进去
-
提示,可以使用: 当前股价*增长系数 **增长天数, 用来计算最终股价哦
-
如: 股价19.99*系数1.2**7天=71.62778419199998,小数点现在精度2位后结果: 71.63
-
代码实现
股价计算
name = "某某公司"
stock_price = 6.5
stock_code = "003033"
stock_price_daily_growth_factor = 1.2
growth_days = 7print(f"公司: {name}, 股票代码: {stock_code}, 当前股价: {stock_price}")
print("每日增长系数, %.1f, 经过%d天增长后, 股价达到了: %.2f"
% (
stock_price_daily_growth_factor,
growth_days,
stock_price * stock_price_daily_growth_factor ** growth_days)
)

数据输入
我们前面学习过print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。
在Python中,与之对应的还有一个input语句,用来获取键盘输入。
- 数据输出: print()
- 数据输入: input()
- 使用上也非常简单:
- 使用input()语句可以从键盘获取输入
- 使用一个变量接收(存储)input语句获取的键盘输入数据即可

- input()语句可以在用户输入内容前,输出提示内容,方式如下:

input语句获取的数据类型
无论键盘输入何种类型的数据, 最终的结果都是: 字符串类型的数据
