目录
一、标识符
1.1 什么是标识符
1.2 标识符命名规则
1.2.1 标识符命名规则 - 内容限定
1.2.2 标识符命名规则 - 大小写敏感
1.2.3 标识符命名规则 - 不可使用关键字
1.3 案例演示
1.4 变量命名规范
1.4.1 变量命名规范 - 见名知意
1.4.2 变量命名规范 - 下划线命名法
1.4.3 变量命名规范 - 英文字母全小写
1.5 总结
二、运算符
2.1 算术(数学)运算符
2.2 算术运算符的演示
2.3 运算符类型
2.3.1 赋值运算符
2.3.2 复合赋值运算符
2.3.3 演示
2.4 总结
三、字符串扩展
3.1 字符串的三种定义方式
3.1.1 字符串的引号嵌套
3.1.2 演示
3.1.3 总结
3.2 字符串拼接
3.2.1 演示
3.2.2 总结
3.3 字符串格式化
3.4 格式化的精度控制
3.4.1 演示
3.4.2 总结
3.5 字符串格式化 - 快速写法
3.6 字符串格式化 - 表达式的格式化
四、数据输入
4.1 获取键盘输入
4.2 input语句(函数)
4.3 input 语句获取的数据类型
4.4 总结
一、标识符
1.1 什么是标识符
在 Python 程序中,我们可以给很多东西起名字,比如:
- 变量的名字;
- 方法的名字;
- 类的名字,等等。
这些名字,我们把它统一的称之为标识符,用来做内容的标识。
所以,标识符:是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
既然要起名字,就会有对应的限制。
1.2 标识符命名规则
Python 中,标识符命名的规则主要有 3 类:
- 内容限定
- 大小写敏感
- 不可使用关键字
1.2.1 标识符命名规则 - 内容限定
标识符命名中,只允许出现:
- 英文
- 中文
- 数字
- 下划线(_)
这四类元素。其余任何内容都不被允许。
1.2.2 标识符命名规则 - 大小写敏感
以定义变量为例:
Andy = “安迪1”
andy = “安迪2”
字母 a 的大写和小写,是完全能够区分的。
1.2.3 标识符命名规则 - 不可使用关键字
Python中有一系列单词,称之为关键字。关键字在Python中都有特定用途,我们不可以使用它们作为标识符。
1.3 案例演示
# 规则1:内容限定,限定只能使用:中文、英文、数字、下划线,注意:不能以数字开头
# 错误的代码示范:1_name = "张三"
# 错误的代码示范:name_! = "张三"
name_ = "张三"
_name = "张三"
name_1 = "张三"
# 规则2:大小写敏感
Andy = "安迪"
andy = 666
print(Andy)
print(andy)
# 规则3:不可使用关键字
# 错误的示例,使用了关键字:class = 1
# 错误的示例,使用了关键字:def = 1
Class = 1
1.4 变量命名规范
学完了标识符(变量、类、方法)的命名规则后,我们在来学习标识符的命名规范。
- 变量名
- 类名
- 方法名
不同的标识符,有不同的规范。
我们目前只接触到了:变量。所以,目前学习:变量的命名规范。
- 见名知意
- 下划线命名法
- 英文字母全小写
1.4.1 变量命名规范 - 见名知意
变量的命名要做到:
- 明了:尽量做到,看到名字,就知道是什么意思
- 简洁:尽量在确保“明了”的前提下,减少名字的长度
1.4.2 变量命名规范 - 下划线命名法
多个单词组合变量名,要使用下划线做分隔。
1.4.3 变量命名规范 - 英文字母全小写
命名变量中的英文字母,应全部小写:
1.5 总结
1. 什么是标识符?
用户编写代码时,对变量、类、方法等编写的名字,叫做标识符。
2. 标识符的命名规则?
- 内容限定(中文、英文、数字、下划线)
- 大小写敏感
- 不可使用关键字
3. 变量的命名规范?
- 见名知意
- 下划线命名法
英文字母全小写。
不遵守规则:会出现问题
不遵守规范:不太高级
二、运算符
2.1 算术(数学)运算符
2.2 算术运算符的演示
# 算术(数学)运算符
print("1 + 1 = ", 1 + 1)
print("2 - 1 = ", 2 - 1)
print("3 * 3 = ", 3 * 3)
print("4 / 2 = ", 4 / 2)
print("11 // 2 = ", 11 // 2)
print("9 % 2 = ", 9 % 2)
print("2 ** 2 = ", 2 ** 2)
运行结果:
2.3 运算符类型
2.3.1 赋值运算符
2.3.2 复合赋值运算符
2.3.3 演示
# 赋值运算符
num = 1 + 2 * 3
# 复合赋值运算符
# +=
num = 1
num += 1 # num = num + 1
print("num += 1: ", num)
num -= 1
print("num -= 1: ", num)
num *= 4
print("num *= 4: ", num)
num /= 2
print("num /= 2: ", num)
num = 3
num %= 2
print("num %= 2: ", num)
num **= 2
print("num **= 2: ", num)
num = 9
num //= 2
print("num //= 2:", num)
运行结果:
2.4 总结
1. 常见的算术(数学)运算符有:
加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)、求平方(**)
2. 赋值运算符有:
- 标准赋值: =
- 复合赋值:+=、-=、*=、/=、//=、%=、**=
三、字符串扩展
3.1 字符串的三种定义方式
字符串在 Python 中有多种定义形式:
- 单引号定义法:name = '你好世界'
- 双引号定义法:name = "你好世界"
- 三引号定义法:name = """你好世界"""
三引号定义法,和多行注释的写法一样,同样支持换行操作。
使用变量接收它,它就是字符串;
不使用变量接收它,就可以作为多行注释使用。
3.1.1 字符串的引号嵌套
思考:如果我想要定义的字符串本身,是包含:单引号、双引号自身呢?如何写?
- 单引号定义法,可以内含双引号
- 双引号定义法,可以内含单引号
- 可以使用转移字符(\)来将引号解除效用,变成普通字符串
3.1.2 演示
# 单引号定义法,使用单引号进行包围
name = '你好世界'
print(type(name))
# 双引号定义法
name = "你好世界"
print(type(name))
# 三引号定义法,写法和多行注释是一样的
name = """
你好
世界
"""
print(type(name))
# 在字符串内 包含双引号
name = '"你好世界"'
print(name)
# 在字符串内 包含单引号
name = "'你好世界'"
print(name)
# 使用转义字符 \ 解除引号的效用
name = "\"你好世界\""
print(name)
name = '\'你好世界\''
print(name)
运行结果:
3.1.3 总结
1. 字符串的三种定义方式:
- 单引号方式
- 双引号方式
- 三引号方式
2. 引号的嵌套
- 可以使用:\ 来进行转义(\ 后面的符号被转义,即失效)
- 单引号内可以写双引号或双引号内可以写单引号
3.2 字符串拼接
如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过 + 号即可完成,如:
输出结果:
单纯的2个字符串字面量进行拼接显得很呆,一般,字面量和变量或变量和变量之间会使用拼接,如:
3.2.1 演示
# 字符串字面量之间的拼接
print("你好" + "世界")
# 字符串字面量和字符串变量的拼接
name = "Tom"
address = "广东省广州市"
tel = "996"
print("我是:" + name + ",我的地址是:" + address + ",我的电话是:" + tel)
运行结果:
既然可以和字符串变量完成拼接,那么,是否可以和其它变量类型如数字类型完成拼接呢?
name = "Tom"
address = "广东省广州市"
tel = 996 # 不加引号
print("我是:" + name + ",我的地址是:" + address + ",我的电话是:" + tel)
TypeError: can only concatenate str (not "int") to str
3.2.2 总结
1. 如何完成字符串拼接?
使用“+”号连接字符串变量或字符串字面量即可。
2. 有哪些注意事项?
无法和非字符串类型进行拼接。
3.3 字符串格式化
我们会发现,这个拼接字符串也不好用啊:
-
变量过多,拼接起来实在是太麻烦了
-
字符串无法和数字或其它类型完成拼接
所以,有没有其它方式,即方便又支持拼接其它类型呢?这个方式,就是字符串的格式化。
我们可以通过如下语法,完成字符串和变量的快速拼接。
其中的,%s
- % 表示:我要占位
- s 表示:将变量变成字符串放入占位的地方
所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置。
那,数字类型呢?可以不可以占位?
class_num = 22
avg_salary = 16781
message = "清华大学,本科%s级,毕业平均工资:%s" % (class_num, avg_salary)
print(message)
可以的,这里是将数字转换成了字符串。也就是数字 22,变成了字符串"22"被放入占位的地方。
注意:多个变量占位变量要用括号括起来并按照占位的顺序填入
Python中,其实支持非常多的数据类型占位,最常用的是如下三类:
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位:
name = "腾讯"
setup_year = 1998
stock_price = 19.99
message = "%s,成立于:%d,我今天的股价是:%f" % (name, setup_year, stock_price)
print(message)
运行结果:腾讯,成立于:1998,我今天的股价是:19.990000
3.4 格式化的精度控制
细心的同学可能会发现:上面浮点数 19.99,变成了 19.990000 输出。这里我们就要讲解一下,字符串格式化之“数字精度控制”。
我们可以使用辅助符号"m.n"来控制数据的宽度和精度:
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
示例:
- %5d:表示将整数的宽度控制在 5 位,如数字 11,被设置为 5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
- %5.2f:表示将宽度控制为 5,将小数点精度设置为 2。
- 小数点和小数部分也算入宽度计算。如,对 11.345 设置了%7.2f 后,结果是:[空格][空格]11.35。2 个空格补足宽度,小数部分限制2 位精度后,四舍五入为 .35
- %.2f:表示不限制宽度,只设置小数点精度为 2,如 11.345 设置 %.2f 后,结果是 11.35。
3.4.1 演示
num1 = 11
num2 = 11.345
print("数字11宽度限制5,结果是:%5d" % num1)
print("数字11宽度限制1,结果是:%1d" % num1)
print("数字11.345宽度限制7,小数精度2,结果是:%7.2f" % num2)
print("数字11.345不限制,小数精度2,结果是:%.2f" % num2)
运行结果:
3.4.2 总结
1. 精度控制的语法是:
m.n 的形式控制,如 %5d、%5.2f、%.2f;m 和 .n 均可省略。
2. 如果 m 比数字本身宽度还小,会发生什么事?
m 不生效。
3. .n 会对小数部分做精度限制,同时:?
会对小数部分做四舍五入。
3.5 字符串格式化 - 快速写法
目前通过%符号占位已经很方便了,还能进行精度控制。
可是追求效率和优雅的Python,是否有更加优雅的方式解决问题呢?
那当然:有
通过语法:f"内容{变量}" 的格式来快速格式化
看如下代码:
name = "腾讯"
set_up_year = 1998
stock_price = 19.99
# f: format
print(f"我是{name},我成立于:{set_up_year}年,我今天的股价是:{stock_price}")
注意:这种写法不做精度控制,也不理会类型,适用于快速格式化字符串。
3.6 字符串格式化 - 表达式的格式化
刚刚的演示,都是基于变量的。
可是,我想更加优雅些,少写点代码,直接对“表达式”进行格式化是否可行呢?
那么,我们先了解一下什么是表达式。
表达式:一条具有明确执行结果的代码语句。
如:
1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字。
又或者,常见的变量定义:
name = “张三” age = 11 + 11
等号右侧的都是表达式呢,因为它们有具体的结果,结果赋值给了等号左侧的变量。
print("1 * 1 的结果是:%d" % (1 * 1))
print(f"1 * 2的结果是:{1 * 2}")
print("字符串在Python中的类型名是:%s" % type("字符串"))
运行结果:
在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码。
四、数据输入
4.1 获取键盘输入
试想一下,我们经常遇到过程序需要我们输入信息的场景。
比如:银行取钱
4.2 input语句(函数)
我们前面学习过 print 语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。
在 Python中,与之对应的还有一个 input 语句,用来获取键盘输入。
- 数据输出:print
- 数据输入:input
使用上也非常简单:
- 使用 input() 语句可以从键盘获取输入
- 使用一个变量接收(存储)input 语句获取的键盘输入数据即可
input() 语句其实是可以在要求使用者输入内容前,输出提示内容,方式如下:
name = input("请告诉我你是谁?")
print("我知道了,你是:%s" % name)
4.3 input 语句获取的数据类型
我们刚刚试验的都是输入了字符串类型的数据。那么如果我们输入数字类型或其它类型,结果会如何?
# 输入数字类型
num = input("请告诉我你的银行卡密码:")
# 数据类型转换
num = int(num)
print("你的银行卡密码的类型是:", type(num))
4.4 总结
-
input()语句的功能是,获取键盘输入的数据
-
可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息。
-
要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型(除非进行数据转换)
上一篇文章:【Python | 基础语法篇】01、字面量、注释、变量、数据类型及转换_Stars.Sky的博客-CSDN博客