【Python | 基础语法篇】02、标识符、运算符、字符串扩展及数据输入

2023-05-16

目录

一、标识符

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 中,标识符命名的规则主要有 类:

  • 内容限定
  • 大小写敏感
  • 不可使用关键字

1.2.1 标识符命名规则 - 内容限定

标识符命名中,只允许出现:

  • 英文
  • 中文
  • 数字
  • 下划线(_

这四类元素。其余任何内容都不被允许。

1.2.2 标识符命名规则 - 大小写敏感

以定义变量为例:

Andy = “安迪1”

andy = “安迪2”

字母 的大写和小写,是完全能够区分的。

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 中有多种定义形式:

  1. 单引号定义法:name = '你好世界'
  2. 双引号定义法:name = "你好世界"
  3. 三引号定义法: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 字符串格式化

我们会发现,这个拼接字符串也不好用啊:

  1. 变量过多,拼接起来实在是太麻烦了

  2. 字符串无法和数字或其它类型完成拼接

所以,有没有其它方式,即方便又支持拼接其它类型呢?这个方式,就是字符串的格式化。

我们可以通过如下语法,完成字符串和变量的快速拼接。

其中的,%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:表示将整数的宽度控制在 位,如数字 11,被设置为 5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
  • %5.2f:表示将宽度控制为 5,将小数点精度设置为 2。
  •       小数点和小数部分也算入宽度计算。如,对 11.345 设置了%7.2f 后,结果是:[空格][空格]11.35个空格补足宽度,小数部分限制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 比数字本身宽度还小,会发生什么事?

不生效。

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 + 15 * 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 总结

  1. input()语句的功能是,获取键盘输入的数据

  2. 可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息。

  3. 要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型(除非进行数据转换)

上一篇文章:【Python | 基础语法篇】01、字面量、注释、变量、数据类型及转换_Stars.Sky的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python | 基础语法篇】02、标识符、运算符、字符串扩展及数据输入 的相关文章

  • 记一次rsyslog配置问题,导致系统无法打印日志

    工作中发现有些机器发生异常 xff0c 想看下messages日志 xff0c 却没有数据 xff0c 看了下rsyslog中日志都定义了打印出的路径 xff0c 但是就是没有日志 查看结果 xff1a 所有的日志文件都没有打印数据 查看了
  • python 字符串操作总结

    目录 1 求字符串长度及字符串转换 2 删除空格 分割字符串 3 连接字符串 4 大小写转换 5 字符串替换 6 统计子字符串的出现次数 7 查找子字符串第一次出现的位置 8 判断字符串的某些属性是否为True 9 字符串转化为数字 10
  • K8S pod 亲和与反亲和 (podAffinity与podAntiAffinity)

    目录 1 简介 xff1a 2 配置须知 xff1a 示例 xff1a 一 创建前端nginx容器 二 创建后端容器 xff0c 与nginx容器做软亲和 三 创建后端容器 xff0c 与nginx容器做硬亲和 1 简介 xff1a 前面介
  • K8S-污点(taints)与容忍(toleration)

    简介 xff1a 污点 xff08 taints xff09 打上了污点的node就不会承载新pod的调度 容忍 xff08 toleration xff09 设置了有容忍的pod xff0c 仍能调度到有污点的node上 一 污点介绍 x
  • Kafka 客户端管理工具 Offset Explorer

    简介 xff1a 我们在项目开发中根据实际业务需求会使用到一些中间件 xff0c 比如缓存redis xff0c 消息队列 xff0c kafka rabbitMQ等 xff0c 在代码中集成后 xff0c 可以通过命令来查看数据的走向 x
  • 力扣(Leetcode)——python3

    目录 动态规划 70 爬楼梯 198 打家劫舍 213 打家劫舍 509 斐波那契数 740 删除并获得点数 746 使用最小花费爬楼梯 1137 第N个泰波那契序列 动态规划 Dynamic Programming 递归 43 迭代 45
  • Python 无参装饰器详解

    1 储备知识 args xff0c kwargs span class token keyword def span span class token function index span span class token punctua
  • 操作系统进程与线程实验二

    操作系统进程与线程实验二 一 实验目的 xff1a 对比进程与线程 xff0c 理解进程与线程的联系与区别 xff0c 学会使用多线程相关函数 一个进程中的多个线程之间使用相同的地址空间 xff0c 共享大部分数据 xff0c 启动一个线程
  • STM32CubeMX+keil5+esp8266(基于hal库的stm32+esp8266连接)

    MX的烧录口和时钟设置 xff1a 配置时钟 xff1a 串口1配置 xff08 用来输出提示信息 xff09 串口2配置波特率115200 xff0c 使能全局中断 xff08 用来做esp8266的串口通信 xff09 命好名生成代码并
  • Vue.js基础---简单的模板页面

    Vue js基础 简单的模板页面 1 模板页面包含了哪些东西 xff1f gt html 43 js 2 js以什么形式 语法 存在 xff1f 插值 双大括号表达式 xff0c 插入一个动态的值在标签内文本内容上 xff0c 动态显示数据
  • STM32单片机,STLINK的SW仿真时“no target connected”问题及处理

    1 问题介绍 在KEIL5软件中使用STLINK仿真器仿真时 使用SW仿真时 xff0c 遇到了no target connected的问题 二 解决方案 通过询问买家 xff0c 自己反复调试后 xff0c 终于解决了这一问题 xff0c
  • Docker comsul(注册中心)

    文章目录 Docker consul xff08 注册中心 xff09 什么是consul xff1f consul干什么的 xff1f 一 consul的使用场景二 consul集群三 consul部署1 建立consul服务2 设置代理
  • python 输入 input() 与输出 print()

    目录 1 输入字符串 2 输入数字 3 输入列表 理解 eval 函数的使用 4 输出 print python 使用 input 获取用户的输入 xff0c 该操作属于无脑式输入 xff0c 不管在键盘上敲入什么内容都会当作字符串类型返回
  • Linux 禁用/启用 网络唤醒功能

    使用ifconfig查看网卡设备 xff0c 这里以eth0为例 1 输入 ethtool eth0 2 在结果内查看是否有如下内容 Supports Wake on pumbgWake on g 若Wake on的值为d xff0c 表示
  • xrandr详细介绍

    简介 xrandr是一款官方的扩展配置工具 它可以设置屏幕显示的大小 方向 镜像等 xff0c 包括对多屏的设置 详细的使用方法可以通过man xrandr查看 单屏设置 查询 使用xrandr q或者xrandr命令可以查询当前的显示状态
  • VS Code中使用git(创建本地仓库及远程仓库、将本地仓库推送至远程仓库、克隆远程仓库、拉取远程仓库、解决冲突)

    创建本地仓库及远程仓库 将本地仓库推送至远程仓库 克隆远程仓库 拉取远程仓库 解决冲突 文章目录 一 创建远程仓库 使用Gitee或者GitHub 二 git推送本地代码至远程仓库三 git克隆远程仓库代码到本地四 VS Code推送代码至
  • Java中的equals和==

    一 equals和 61 61 的区别 1 根本的区别在于 equals Object obj 是一个方法 xff0c 而 61 61 是一个运算符 2 一般来说 xff0c 61 61 运比较的是在内存中的物理地址 xff0c equal
  • [欠驱动机器人]1.概念

    目录 定义反馈控制输入或状态限制不完整约束欠驱动机器人举例参考文献 定义 形象来看 xff0c 就是机器人驱动数量小于关节数量 从数学来看 xff0c 根据牛顿定律 xff0c 机械系统的动力学方程为二阶导数形式 F 61 ma xff0c
  • Prometheus自主无人机入门笔记

    本部分介绍自主无人机组成框架 自主无人机关键技术 1 1 自主无人机的组成框架 1 1 1 硬件框架 自主无人机硬件组成有 机架 动力系统 xff08 包括电机 电调和浆 xff09 指挥 系统 xff08 机载电脑 飞控板 xff09 通
  • 自主导航与路径规划无人机研究现状

    目录 1 SLAM算法的研究现状 2 无人机定位研究现状 3 路径规划的研究现状 参考文献 1 SLAM算法的研究现状 移动机器人根据传感器获取的自身状态信息和环境信息构建环境地图的过程被称之为SLAM问题 xff0c SLAM问题能否解决

随机推荐