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

news2024/11/23 13:33:36

目录

一、标识符

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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring aop如何寻找advisor

1.bean的生命周期第一步回去解析所有的advisor 2.第四个是我们之前开启的注解EnableAspectJAutoProxy 3.org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator#postProcessBeforeInstantiation 4.org.springframework.aop.framework.autoproxy.AbstractAutoP…

ChatGPT的提示的一些高级知识

作为一个大型语言模型(LLM)接口,ChatGPT有令人印象深刻的潜力,但是真正能否用好取决与我们的提示(Prompt ),一个好的提示可以让ChatGPT晋升到一个更好的层次。 在这篇文章中,我们将介绍关于提示的一些高级…

可视化 | Flask+Pyecharts可视化模板二

文章目录 🏳️‍🌈 1. 系统说明界面🏳️‍🌈 2. 柱状图示例界面🏳️‍🌈 3. 散点图示例界面🏳️‍🌈 4. 折线图示例界面🏳️‍🌈 5. 饼图示例界面&#x1f3f…

单链表——你需要掌握的那些内容

如有错误,感谢不吝赐教、交流 文章目录 前言本文涉及题目:设计链表有无头结点的区别头指针无头结点有头结点为什么需要头结点呢?注意: 单链表,本文使用Java实现定义链表节点定义一个链表类并初始化get(int index)addA…

HAproxy与web集群

文章目录 一、HAproxy1.HAProxy是什么2.HAProxy的核心能力和关键特性3.LVS、Nginx、HAproxy的区别: 二、实验步骤1.Haproxy搭建 Web 群集 总结 一、HAproxy 1.HAProxy是什么 HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。…

儿童生长发育迟缓的鉴别和干预

(英国)国家临床医学研究所(NICE)2017年发布关于婴儿/儿童生长发育迟缓的鉴别、评估和监测的指南,该指南确定了生长发育的界值,指出了诱因及危险因素,并提出了干预的方案。 ▼Part1:…

“无人值守”时代已来,千巡翼X4给出怎样的答案?

随着技术和产品的逐渐成熟,无人机在各行业的应用越来越普遍,但如何进一步解放人力,提高运营效率,还有很大的探索空间。针对作业频率高、重复性高、周期性强、作业环境艰险危险等痛点,用户迫切需要更高效、更智能的全自…

LeetCode876. 链表的中间结点

876. 链表的中间结点 描述示例解题思路以及代码解法1解法2 描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 示例1 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释…

希尔排序的实现

希尔排序是插入排序的一种升级,其基本思想是: 先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每 一组内的记录进行排序。然后,取,重复上述分组和排序的工 作…

可执行Jar项目

一个复杂Jar的运行,要解决classpath问题,否则运行时会有ClassNotFoundException抛出。而用java,需要手动维护一个classpath文件,或者将所有的库位置放到命令行参数里。有没有更好的办法? Jar库目录方式 核心配置在于两…

算法训练Day40:343. 整数拆分 96.不同的二叉搜索树

文章目录 整数拆分题解(动态规划)贪心 不同的二叉搜索树题解 整数拆分 CategoryDifficultyLikesDislikesContestSlugProblemIndexScorealgorithmsMedium (62.22%)11660--0 Tags 数学 | 动态规划 Companies 给定一个正整数 n ,将其拆分为…

推荐几个免费的在线文本转语音网站(支持中英文多种语音)

如果你正在寻找一款免费的在线文本转语音工具,那么你来对地方了!本文将介绍几个完全免费的在线文本转语音网站,推荐收藏下来以备不时之需。 No.1 免费文本转语音(TTSMaker) TTSMaker是第一个推荐的工具,这…

院内导航方案怎么样?什么地图可以用于医院导航系统?

什么地图可以用于医院导航系统?随着医疗事业的不断发展,医院的建制规模越来越大,在医疗能力得到增强的同时,由于楼宇众多,院内寻路难度难免增加。不少前来医院就诊的患者经常会有“寻路难”的困扰。此时一张一目了然的…

从在线监测与故障诊断系统视角,探讨动设备安全运行的重要性

在工业生产中,动设备是生产线的重要组成部分,但是随着设备运行时间的不断延长,设备的损耗逐渐加大,设备故障和损坏的风险也随之增加,给生产效率和安全带来不小的影响。因此,如何保证动设备的安全运行成为了…

更简单的存取Bean的方式(一)-五大类注解

目录 使用类注解 前置工作 Bean命名规则 五大类的实现 JavaEE标准分层 之前我们存储Bean时,是在spring-config.xml文件中添加bean注册内容来实现的 通过"注解"我们可以替代这一项工作 更加简单的存储方式: 使用类注解 五大类注解: Controller(控制器):用来控制…

常用的倾斜摄影三维模型3DTILES格式优缺点分析

常用的倾斜摄影三维模型3DTILES格式优缺点分析 三维模型3DTILES格式是一种用于描述三维模型和场景数据的标准格式,具有以下优点和缺点: 优点: 1、多平台支持:3DTILES格式基于WebGL和JavaScript技术,可以在多个平台上…

用Python搞定接口自动化测试:轻松实现RPC协议接口测试

每天进步一点点,关注我哦,每天分享测试技术文章,文末有福利! 目录:导读 前言 一、什么是RPC 二、RPC框架 三、基于grpc框架服务的接口测试 01创建一个grpc服务接口 02调用grpc接口客户端 03接口框架中适配grpc封…

nvm安装使用详解,附gnvm介绍

最近工作中,再次遇到了需要处理 Node.js 多版本管理的事情,由于在windows系统下开发,于是使用了 nvm 来做版本管理。 其实,之前在写文章介绍 进行node和npm的版本升级 的时候,也有提到 node 多版本管理工具&#xff0c…

史上最全Maven教程(五)

文章目录 🔥Maven聚合案例_搭建dao模块🔥Maven聚合案例_搭建service模块🔥Maven聚合案例_搭建web模块🔥Maven聚合案例_运行项目🔥依赖传递失效及解决方案 🔥Maven聚合案例_搭建dao模块 dao子工程中一般写实…

linux交叉编译环境搭建 gcc + openocd + stlink + cubeMX + cortex Debug

文章目录 运行环境:1.1 gcc1)下载并解压gcc2)环境配置 2.1 openocd1)下载并解压openocd2)环境配置(没有权限就加sudo) 3.1 stlink1)下载并双击安装stlink 4.1 cubeMX1)下载并解压cubeMX2)生成makefile工程 5.1 cortex Debug1)setting设置2)la…