网站人工客服系统/百度关键词检测工具
|
文章目录
- 变量及类型
- 变量
- 类型
- 动态类型特性
- 注释
- 输入输出
- 通过控制台输出
- 通过控制台输入
- 运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 赋值运算符
- 条件循环语句
- 条件语句
- 语法格式
- 代码案例
- 缩进和代码块
- 空语句pass
- 循环语句
- while循环
- 语法格式
- 代码案例
- for循环
- 语法格式
- range函数
- 代码案例

变量及类型
变量
print(1 / 2) # 0.5
-
与C/C++等其他语言不同的是,Python中两个整数相除的结果为浮点数
-
Python中浮点数在内存中存储的时候遵循IEEE754标准,这套标准在表示浮点数时可能会存在微小的误差,但这个误差在实际开发中不会造成太大的影响
Python中创建变量的语法非常简单,比如:
a = 10
- 其中 a 为变量名,当程序中需要创建多个变量时,可以通过变量名来进行区分
- 首次使用赋值表达式设置变量的值,这个操作是创建变量(初始化操作)
- 对已存在的变量进行赋值操作,则是在修改这个变量的值(重新赋值)
为了区分不同种类的数据,于是出现了变量类型这个概念。
类型
与C/C++等其他语言不同的是,Python中的变量在定义的时候不需要显示声明其类型,而是在初始化值的时候确定的。
整数
整数的类型为int,比如:
a = 10
print(type(a)) # <class 'int'>
- type和print一样,都是Python中的内置函数,可以使用type函数来查看一个变量的类型
与C/C++等其他语言不同的是,Python中int类型的变量表示的数据范围是没有上限的,只要内存够大,就能够表示无限大的数据
浮点数
浮点数(小数)的类型为float,比如:
b = 0.7
print(type(b)) # <class 'float'>
与C/C++等其他语言不同的是,Python中表示浮点数时只有float一种类型,没有double类型
,实际上Python中的float类型就相当于C/C++等语言中的double类型,表示双精度浮点数
Python开发者的哲学:用一种方法,最好只有一种方法来做一件事。
字符串
字符串的类型为str,比如:
c = 'China'
print(type(c)) # <class 'str'>
字符串可以是用“单引号”,“双引号”,“三单引号”以及“三双引号”引起来的一串字符序列。比如:
a = 'China'
b = "China"
c = '''China'''
d = """China"""print(a) # China
print(b) # China
print(c) # China
print(d) # China
另外,使用“三单引号”和“三双引号”可以将多行字符串赋值给变量,比如:
a = """
hello world
hello python
"""
可以使用len函数来获取字符串的长度,比如:
a = "China"
print(len(a))
还可以使用’+'对两个字符串进行拼接,比如:
a = "hello"
b = " world"
c = a + b
print(c) # hello world
布尔
表示真假的类型是bool,比如:
a = True
print(type(a)) # <class 'bool'>
- 布尔类型只有两种取值,True(真)和False(假)
其它类型
除了上述的类型之外,Python中还有list, dict, 自定义类型等等,后面会一一介绍。
动态类型特性
静态类型与动态类型:
静态类型:在编译时,编译器基于所声明的数据类型确定变量的类型
动态类型:在运行时,解释器基于变量值的类型确定变量的类型
C/C++等大多数语言都是静态类型语言,在编写静态类型语言的代码时,必须声明变量的数据类型,而Python是一种动态类型语言,因此在编写Python代码时,不用事先声明变量的数据类型。
由于在动态类型语言中,变量值的类型决定了变量的类型,因此在Python中同一个变量在不同时刻其类型可能是不同的,比如:
a = 10
print(type(a)) # <class 'int'>a = 0.7
print(type(a)) # <class 'float'>
动态类型特性是一把双刃剑:
- 对于中小型程序,可以大大的减少代码量,比如写一段代码就可以同时支持多种类型
- 对于大型程序,提高了模块之间的交互成本,比如程序员A提供的代码难以被B理解
注释
Python中有以下两种风格的注释:
注释行
使用 # 开头的行都是注释行
,注释可以写在一行的开头,也可以写在代码的右侧,比如:
# 这是一个注释
print("hello python") # 这也是一个注释
文档字符串
使用三引号引起来的内容称为“文档字符串”,也是注释的一种,比如:
"""
这是多行文本知识
第一行
第二行
第三行
...
"""
说明一下:
- Python中没有多行注释的概念,能够以三引号的方式添加注释,根本原因是因为Python会忽略未分配给变量的字符串文本
- 这种以三引号引起来的“文档字符串”,通常放在文件、函数、类的开头
输入输出
程序需要与用户进行交互。
- 用户把信息传递给程序的过程,称为“输入”
- 程序把结果展示给用户的过程,称为“输出”
输入输出最基本的方法就是控制台,用户可以通过控制台输入一些字符串传递给程序,程序通过控制台将其运行结果展示给用户。
通过控制台输出
使用print函数可以将任意类型的变量输出到控制台,比如:
a = 2024
print(a) # 2024a = 0.7
print(a) # 0.7
如果想要混合输出不同类型的变量,那么就需要对输出的字符串进行格式化,比如:
year = 2024
name = "dragon"print(f'The {year} year is {name} year') # The 2024 year is dragon year - 英语语法可忽略(手动狗头)
说明一下:
- 使用 f 作为前缀的字符串,称为 f-string
- f-string里面的 {} 用来内嵌一个其他的变量或表达式
通过控制台输入
使用input函数可以从控制台读取用户输入的数据,比如:
num = input("你输入一个整数:")
print(f'你输入的整数是{num}')
说明一下:
- Input的参数相当于“提示信息”,也可以没有
input的返回值就是用户输入的内容,是字符串类型
由于input 函数的返回值是字符串类型,因此下面的代码实际进行的是字符串拼接操作:
a = input('请输入第一个整数:') # 10
b = input('请输入第二个整数:') # 20
print(f'{a} + {b} = {a + b}') # 1020
如果我们想进行算术运算,那么在运算前需要进行类型转换操作,比如:
a = input('请输入第一个整数:') # 10
b = input('请输入第二个整数:') # 20
a = int(a)
b = int(b)
print(f'{a} + {b} = {a + b}') # 30
说明一下:
与C/C++不同的是,使用int()的方式可以将一个变量转换为int类型
- 类似的,还有float(), bool(), str()等
运算符
算术运算符
Python中的算术运算符包括 +,-,*,/,%,**(幂),//(地板除)
- 0 不能作为除数,否则程序会抛异常
- 两个整数相除后得到的是一个浮点数
- ** 可以求一个数的整数次幂,也可以求一个数的小数次幂
- // 是地板除,整数除以整数得到的还是整数(向下取整)
关系运算符
Python中的关系运算符包括 <, <=, >, >=, ==, !=
判断两个字符串是否相等
与C/C++等其他语言不同的是,Python中使用==或者!=即可判断两个字符串的内容是否相等。
比如:
a = "hello"
b = "hello"
print(a == b) # True
判断两个浮点数是否相等
不能直接使用==判断两个浮点数是否相等,因为浮点数在计算机中的表示并不是精确的。比如:
a = 0.1 + 0.2
b = 0.3
print(a) # 0.30000000000000004
print(b) # 0.3
print(a == b) # False
正确的比较两个浮点数的方式应该是,判定这两个浮点数的差值是否小于允许的误差范围。
比如:
a = 0.1 + 0.2
b = 0.3
print(a) # 0.30000000000000004
print(b) # 0.3
print(-0.000001 < (a - b) < 0.000001) # True
逻辑运算符
Python中的逻辑运算符包括:and, or, not
- and:并且。两侧操作数均为True,则最终结果为True,否则为False(一假则假)
- or:或者。两侧操作数均为False,则最终结果为False,否则为True(一真则真)
- not:逻辑取反。操作数本身为True,则返回False,本身为False,则返回True
说明一下:
- 在Python中 a < b and b < c 等价于 a < b < c,这个设定与其他编程语言都不相同
- 与其他编程语言类似的是,
Python中也存在短路求值规则
,对于and,如果左侧表达式为False,则整体一定为False,因此右侧表达式不再执行;对于or,如果左侧表达式为True,则整体一定为True,因此右侧表达式不再执行
赋值运算符
Python中的赋值运算符,包括=
、+=
、-=
、*=
、/=
、%=
、**=
、//=
、&=
、|=
、^=
、<<=
、>>=
。
Python还支持多元赋值的方式对多个变量进行赋值。比如:
a, b = 10, 20
print(a) # 10
print(b) # 20
多元赋值能够帮助我们解决一些特殊的问题,比如交换两个变量的值:
a, b = 10, 20
a, b = b, a
print(a) # 20
print(b) # 10
说明一下:
Python中没有++,--的概念,如果需要对变量进行自增/自减,可以使用+= / -= 1
除去上面介绍的运算符之外,Python中还有其他的运算符,我们后续介绍。
条件循环语句
条件语句
语法格式
标准格式
if 表达式1:语句块1
elif 表达式2:语句块2
else:语句块3
说明一下:
条件表达式和else后面使用 : 结尾
对于多条件分支,不是写作else if,而是elif
- 命中条件后要执行的语句块,
使用缩进来区分各个代码块
- Python当中if语句也支持嵌套
代码示例:
choice = input('你大学认真学习了吗?(输入1表示是,输入0表示否): ')if choice == '1':print('你将会找到一份满意的工作。')
elif choice == '0':print('你将来会后悔的。')
else:print('你的输入有误。')
说明一下:
- input函数的返回值是字符串类型
代码案例
1.输入一个整数,判定是否是奇数
num = int(input('请输入一个整数:')) # 将输入的字符串转换成int类型if num % 2 == 1:print('这是一个奇数')
else:print('这是一个偶数')
说明一下:
- 在C/C++等其他语言中负奇数取余后得到的是-1,在Python中负奇数取余后得到的是1
2.输入一个整数,判定是正数还是负数
num = int(input('请输入一个整数:'))if num > 0:print('这是一个正数')
elif num < 0:print('这是一个负数')
else:print('这是0')
3.判断年份是闰年还是平年
year = int(input('请输入一个年份:'))if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):print('闰年')
else:print('平年')
缩进和代码块
在Python中使用缩进来区分代码块,不同级别的缩进,程序的执行效果是不同的。
比如:
# 代码1
num = input('请输入一个整数:')
if num == '1':print('hello')print('world')# 代码2
num = input('请输入一个整数:')
if num == '1':print('hello')
print('world')
说明一下:
- 代码1中的两条打印语句都具有一级缩进,因此都属于if内的代码块
- 代码2中只有第一条打印语句具有一级缩进,第二条打印语句没有缩进,因此只有第一条打印语句属于if内的代码块
空语句pass
Python语法规定,if语句、for语句、while语句、函数体、类定义都不能为空,如果因为某些原因写了对应无内容的语句,就需要使用pass语句来避免语法错误。如下:
if a < b:passwhile a < b:passfor x in range(10):passdef func():passclass MyClass:pass
说明一下:
- 空语句pass并不会对程序的执行有任何影响,只是占个位置,保持Python语法格式符合要求。
循环语句
while循环
语法格式
while 表达式1:语句块1
else:语句块2
说明一下:
在循环表达式和else后面使用 :结尾
- 命中条件后要执行的语句块,使用缩进来区分各个代码块
- Python当中while循环也支持嵌套
- break,continue用法与C/C++一致
- 如果使用了else语句,那么当循环条件不再成立时,会执行一次else代码块
代码案例
1.打印1-10的整数
num = 1while num <= 10:print(num)num += 1
2.计算1-100的和
num = 1
sum = 0while num <= 100:sum += numnum += 1print(sum)
3.计算5的阶乘
result = 1
num = 5while num >= 1:result *= numnum -= 1print(result)
4.求1! + 2! + 3! + 4! + 5!
num = 1
sum = 0while num <= 5:factorResult = 1i = 1# 计算num的阶乘while i <= num:factorResult *= ii += 1sum += factorResultnum += 1print(sum)
for循环
语法格式
for 循环变量 in 可迭代对象:语句块1
else:语句块2
说明一下:
- 可迭代对象包括列表、元组、集合、字典、字符串等
可迭代对象和else后面以 :结尾
- 命中条件后要执行的代码块,使用缩进进行区分
- 如果使用了else语句,那么当循环条件不在满足时,会执行一次else代码块
range函数
range函数经常和for循环搭配使用,其可以返回一个数字序列(可迭代对象)。
range(起始值=0,结束值,增量值=1)
参数说明:
- 第一个参数代表的是数字序列的起始值,默认为0
- 第二个参数代表的是数字序列的结束值(不包括结束值,左闭右开)
- 第三个参数代表的是数字序列的增量值(步长),默认为1
range函数的三种使用方式:
- range(end): 返回的数字序列为0,1,2,3 … end-1
- range(start, end): 返回的数字序列为start, start+1, start+2 … end-1
- range(start, end, step): 返回的数字序列为start, start + step, start + 2 * step … start + n * step
对于range函数的第三种使用方式,如果step的值为正数,那么start + n * step < end,如果step的值为负数,那么start + n * step > end.
range(10) # 0 1 2 3 4 5 6 7 8 9
range(1, 10) # 1 2 3 4 5 6 7 8 9
range(1, 10, 2) # 1 3 5 7 9
range(10, 1, -2) # 10 8 6 4 2
代码案例
1.打印1-10的整数
for i in range(1, 11):print(i)
2.打印10-1的整数
for i in range(10, 0, -1):print(i)
3.求1-100的和
sum = 0for i in range(1, 101):sum += i
print(sum)
|
|
相关文章:

学完C/C++,再学Python是一种什么体验?
你好,我是安然无虞。 文章目录 变量及类型变量类型动态类型特性 注释输入输出通过控制台输出通过控制台输入 运算符算术运算符关系运算符逻辑运算符赋值运算符 条件循环语句条件语句语法格式代码案例缩进和代码块空语句pass 循环语句while循环语法格式代码案例 for…...

ssm基于Java的壁纸网站设计与实现论文
目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…...

零基础也可以探索 PyTorch 中的上采样与下采样技术
目录 torch.nn子模块Vision Layers详解 nn.PixelShuffle 用法与用途 使用技巧 注意事项 参数 示例代码 nn.PixelUnshuffle 用法与用途 使用技巧 注意事项 参数 示例代码 nn.Upsample 用法与用途 使用技巧 注意事项 参数 示例代码 nn.UpsamplingNearest2d …...

代码随想录算法训练营Day23|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
目录 669. 修剪二叉搜索树 前言 思路 递归法 108.将有序数组转换为二叉搜索树 前言 递归法 538.把二叉搜索树转换为累加树 前言 递归法 总结 669. 修剪二叉搜索树 题目链接 文章链接 前言 本题承接昨天二叉搜索树的插入和删除操作题目,要对整棵二叉搜索树…...

乱 弹 篇(一)
题记 对于“乱弹”这个词汇的释义,《辞海》上仅有“ 戏曲剧种,亦指声腔 ”8个字。而由于“乱弹 ”的“ 弹”谐音谈”,这就容易让人联想到“乱谈”。不过从文体上看,“乱谈”也非乱七八糟之谈,反倒是“东西南北&#x…...

《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
目录 JVM的垃圾回收算法1. 标记-清除算法(Mark-Sweep)原理步骤优点缺点 2. 复制算法(Copying)原理步骤优点缺点 3. 标记-整理算法(Mark-Compact)原理步骤优点缺点 4. 分代收集算法(Generational…...

在矩阵回溯中进行累加和比较的注意点
1 总结 在回溯时,如果递归函数采用void返回,在入口处使用了sum变量,那么一般在初次调用dfs的地方,这个sum的初始值可能不是0,而是数组的对应指针的值,在比较操作的时候,需要在for循环开始之前进行…...

AI语音机器人的发展
第一代AI语音机器人具体投入研发的开始时间不太清楚,只记得2017年的下半年就已经开始接触到成型的AI语音机器人,并且正式商用。语音识别效果还不多,大多都是接入的科大讯飞或者百度的ASR。 2018年算是AI语音机器人的“青春期”吧,…...

SQL语句错误this is incompatible with sql_mode=only_full_group_by解决方法
一、原理层面 这个错误发生在mysql 5.7.5 版本及以上版本会出现的问题: mysql 5.7.5版本以上默认的sql配置是:sql_mode“ONLY_FULL_GROUP_BY”,这个配置严格执行了"SQL92标准"。 很多从5.6升级到5.7时,为了语法兼容,大部…...

静态长效代理IP和动态短效代理IP有哪些用途?分别适用场景是什么?
静态长效代理IP和动态短效代理IP是两种常见的代理IP类型,它们在用途和适用场景上存在一定的差异。了解它们的特性以及使用场景有助于我们更好地利用代理IP,提高网络访问的效率和安全性。 一、静态长效代理IP 1. 用途 静态长效代理IP是指长期保持稳定的代…...

基于Spring Boot+Vue的课堂管理系统(前后端分离)
该项目完全免费 介绍 基于Spring BootVue的课堂管理系统。前后端分离。包含教师授课管理、学生选退课、聊天室、签到、笔记管理模块等。 技术架构 SpringBoot MyBatis Redis WebSocket VueCLI Axios Element UI 项目特点: 1、后台使用MyBatis连接数据库&…...

供排水管网管理信息化的必要性
供排水管网是城市供水系统的大动脉,它负担者将优质水源输送到最终用户的重要职责,对供水系统有着极其重要的作用。城市供排水管网埋设在地下,规模庞大,仅靠人工难以管理。同时,由于城市的发展,管网连接结构…...

统一格式,无限创意:高效管理不同格式图片批量转换
在数字时代,图片格式的多样性带来了管理上的不便。为了满足不同的需求,我们经常需要将大量图片转换为统一的格式。那么,有没有一种简单、高效的方法来解决这个问题呢?答案是肯定的!今天,我们将为您介绍一款…...

工作电压范围宽的国产音频限幅器D2761用于蓝牙音箱,输出噪声最大仅-90dBV
近年来随着相关技术的不断提升,音箱也逐渐从传统的音箱向智能音箱、无线音箱升级。同时在消费升级的背景下,智能音箱成为人们提升生活品质的方式之一。智能音箱是智能化和语音交互技术的产物,具有点歌、购物、控制智能家居设备等功能…...

中国智造闪耀CES | 木牛科技在美国CES展亮相多领域毫米波雷达尖端方案
素有全球科技潮流“风向标”之称的2024国际消费类电子产品展(CES),于1月9-12日在美国拉斯维加斯会议中心举办。CES是全球最大的消费电子和消费技术展览会之一,汇集了世界各地优秀的消费电子和科技公司,带着最好的产品来…...

亚马逊衣物收纳 梳妆台 收纳柜CPC认证ASTM F2057-23 报告分析
衣物收纳商品是指带有抽屉或铰链门的家具商品,通常是卧室家具,用于存放衣物。该政策适用于独立式服装收纳商品 包括但不限于箱子、五斗橱、抽屉柜、大橱柜、衣橱柜、衣橱、门柜和梳妆台,并且满足以下要求: 衣物收纳商品是指带有抽…...

【设计模式】02-SOLID 设计原则
面向对象编程(OOP)是一种广泛应用的编程范式,它鼓励开发者通过对象来模拟现实世界。为了提高面向对象设计(OOD)的质量和可维护性,Robert C. Martin提出了 SOLID 原则,这五个原则构成了编写良好、…...

突然间我懂了软件
什么是 “遗留代码” – 它是一个不再由具有这些代码相关理论的人维护的代码库。 单枪匹马的工程师能做出比同样有能力的专业团队更好的产品。单干的工程师会花时间为自己的程序建立一套完整的理论,而专业人员则会定期在不同的项目之间流动,他们只对自己…...

游戏美术的技与艺
大家好,我是阿赵。 可能很多朋友都知道,我刚进入游戏行业的时候,做的是美术工作,包括了建模、贴图、动画等,都做过。我对各种美术资源制作也都很熟悉,懂得很多制作的技术。但最后,我却没有继…...

Python(35):Python3 通过https上传文件和下载文件
Python(35):Python3 通过https上传文件和下载文件 Python http方式的下载,参考:https://blog.csdn.net/fen_fen/article/details/113753983 https需要先安装需要的模块 1、上传示例 1.1、调用: upload_strategy(access_token,"1234…...

【MySQL】日期格式为 YYYY-MM 无法直接使用 DATE_SUB 函数的解决方案(特殊处理 或 PERIOD_DIFF 函数)
力扣题 1、题目地址 1843. 可疑银行账户 2、模拟表 表:Accounts Column NameTypeaccount_idintmax_incomeint account_id 是这张表具有唯一值的列。每行包含一个银行账户每月最大收入的信息。 表:Transactions Column NameTypetransaction_idint…...

Redis的key淘汰方式和内存不足淘汰方式
Redis的key过期淘汰方式 Redis key过期策略 定期删除惰性删除 Redis如何淘汰过期的key 定期删除 隔一段时间,就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除定期删除可能会导致很多过期key到了时间并没有被删除掉&#x…...

java使用redis
1、pom.xml文件里面增加如下依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2、yml文件增加如下配置: redis:host: loc…...

MySQL技能树
MySQL作为一款广泛使用的关系型数据库管理系统,提供了丰富多样的SQL语句以支持数据的创建、查询、更新和删除等操作。以下是一份MySQL语句操作大全的概览,涵盖从数据库管理到复杂查询的常用命令: ### 一、数据库管理(DDL - 数据定…...

redis获取过期时间
03,redisTemplate_redistemplate 获取剩余时间-CSDN博客 11.返回当前key所对应的剩余过期时间 redisTemplate.getExpire(key);1 12.返回剩余过期时间并且指定时间单位 redisTemplate.getExpire(key, unit);...

ERROR in Plugin “react“ was conflicted .... 天坑留念-turborepo、eslint plugin
前两天项目代码拉下来,装完依赖启动的时候直接报错: [eslint] Plugin "react" was conflicted between ".eslintrc.js eslint-config-custom eslint-config-alloy/react" and "BaseConfig D:\pan\erp\test\business-servic…...

MergeTwoSortedLists 【合并有序链表】
有种归并排序的感觉 链表好久不用有些生疏了,思想思路是对的,但是代码写出来有问题,。 写完说点感受: 当时在学校学习链表的时候,就了解到链表分为“有头节点”和“无头节点”的链表,所以这里好像就不练&am…...

基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpRequest模块 解析http请求协议
一、HTTP响应报文格式 HTTP/1.1 200 OK Bdpagetype: 1 Bdqid: 0xf3c9743300024ee4 Cache-Control: private Connection: keep-alive Content-Encoding: gzip Content-Type: text/html;charsetutf-8 Date: Fri, 26 Feb 2021 08:44:35 GMT Expires: Fri, 26 Feb 2021 08:44:35 GM…...

muduo网络库剖析——网络地址InetAddress类
muduo网络库剖析——网络地址InetAddress类 前情从muduo到my_muduo 概要socketaddr_in介绍成员用法 网络地址转换函数 框架与细节成员函数使用方法 源码结尾 前情 从muduo到my_muduo 作为一个宏大的、功能健全的muduo库,考虑的肯定是众多情况是否可以高效满足&…...

什么是本地IP?服务器本地IP有哪些优势?
本地IP是指直接在互联网上分配给服务器或设备的IP地址,而不是通过NAT(网络地址转换)或 代理等中间设备进行转发。让我们关注本地IP的优势。 1.直接访问:原始IP允许无中间设备转发或代理直接访问服务器或设备。这减少了网络延迟&a…...