【Python】Python基础

文章目录

  • 一、字面值常量和表达式
  • 二、变量
    • [2.1 定义变量](#2.1 定义变量)
    • [2.2 变量的命名规则](#2.2 变量的命名规则)
    • [2.3 变量的类型](#2.3 变量的类型)
    • [2.4 不同类型大小](#2.4 不同类型大小)
    • [2.5 动态类型](#2.5 动态类型)
  • 三、注释
  • 四、输入与输出
  • 五、运算符
    • [5.1 算术运算符](#5.1 算术运算符)
    • [5.2 关系运算符](#5.2 关系运算符)
    • [5.3 逻辑运算符](#5.3 逻辑运算符)
    • [5.4 赋值运算符](#5.4 赋值运算符)

一、字面值常量和表达式

python 复制代码
print(1 + 2 * 3) # 7
print(1 + 2 / 3) # 1.6666666666666665

这里的1 + 2 * 3就被称为表达式 ,表达式的运算结果称为表达式的返回值,而像1,2,3这样的数字称为字面值常量

细节:

在C/C++中,2 / 3是向下取整,而在Python中则是变成了浮点数。

并且Python中不存在四舍五入的概念,所以第二个表达式的结果如上,Python中浮点数在内存中的存储遵循IEEE754标准。

二、变量

2.1 定义变量

跟C/C++一样,Python也有变量

python 复制代码
a = 100 + 120
print(a) # 220

这里的a就是变量

变量存在的目的就是把结果保存起来,方便后续使用

2.2 变量的命名规则

  • 变量名由数字、字母、下划线构成。
  • 变量名不能以数字开头。
  • 变量名不能和Python的"关键字"重复。
  • 变量名大小写敏感,比如num和Num是两个不同的变量名。

2.3 变量的类型

Python中变量的类型不需要在定义的时候显式声明,是根据初始化的值的类型来进行确定的。

  • 整数 int
python 复制代码
a = 1
print(type(a)) # <class 'int'>

细节:

与C/C++等其他语言不同的是,Python中int类型的变量能够表示的数据范围是没有上限的,只要内存足够大,理论上就可以表示无限大的数据。

  • 浮点数 float
python 复制代码
a = 1.01
print(type(a)) # <class 'float'>

与C/C++等其他语言不同的是,Python中的浮点数只有float一种类型,没有double类型,实际上Python中的float就相当于C/C++等语言中的double类型,表示双精度浮点数

  • 字符串 str
python 复制代码
a = 'abc'
print(type(a))

Python语法要求字符串必须要用引号括起来(单引号双引号三引号都行)

如果字符串本身包含引号呢?

python 复制代码
a = "my name is "yyh"" # error

正确写法:

python 复制代码
a = "my name is 'yyh'"
b = 'my name is "yyh"'

字符串中有单引号,就用双引号引起来

字符串中有双引号,就用单引号引起来

如果同时有单引号和双引号呢?

可以使用三引号

python 复制代码
'''或"""
python 复制代码
a = '''My 'name' is "yyh"'''
print(a) # My 'name' is "yyh"

字符串也可以使用len来获取长度

python 复制代码
a = 'abcdef'
print(len(a)) # 6

跟C++一样,可以使用+对两个字符串进行拼接,比如:

python 复制代码
a = 'abcdef'
b = 'ghi'
c = a + b
print(c) # abcdefghi
  • 布尔 bool

布尔类型的取值只有两种,True(真)和False(假)。

特别注意大小写

python 复制代码
a = True
print(a) # True
python 复制代码
a = 10
b = 20
print(a == b) # False

2.4 不同类型大小

int 默认四个字节,可以动态扩容

float 固定八个字节

bool 一个字节

str 变长的

2.5 动态类型

动态类型与静态类型:

  • 动态类型: 在运行时,解释器基于变量值的类型决定变量的类型。
  • 静态类型: 在编译时,编译器基于所声明的数据类型确定变量的类型。

C/C++等大多数语言都是静态类型语言,在编写静态类型语言的代码时,必须声明变量的数据类型,而Python则是一种动态类型语言, 因此在编写Python代码时不用声明变量的数据类型。

python 复制代码
a = 10
print(type(a)) # <class 'int'>
a = '10'
print(type(a)) # <class 'str'>

三、注释

Python有两种注释方法:
1️⃣ 注释行

python 复制代码
# 这是一个注释

2️⃣ 文档字符串

python 复制代码
"""
这是一个注释
"""

单引号双引号同理

四、输入与输出

输入输出的最基本的方法就是控制台,用户可以通过控制台输入一些字符串传递给程序,程序再通过控制台将其运行结果展示给用户。

  • 输出
python 复制代码
a = 100
print(a) # 100

格式化输出:

预期格式化输出:a = 100

python 复制代码
a = 100
print(f"a = {a}") # a = 100

使用f作为前缀的字符串,称为f-string。

  • 输入
python 复制代码
num = input('请输入一个数字: ')
print(f"输入的数字是 {num}")

# 请输入一个数字: 5
# 输入的数字是 5

input的返回值就是用户输入的内容,是字符串类型。

python 复制代码
a = input('请输入第一个数字: ')
b = input('请输入第二个数字: ')
print(f"a + b = {a + b}")
python 复制代码
请输入第一个数字: 123
请输入第二个数字: 456
a + b = 123456

如果想要进行算术运算,那么需要在运算前对读取到的值进行类型转换。比如:

python 复制代码
a = input('请输入第一个数字: ')
b = input('请输入第二个数字: ')
a = int(a)
b = int(b)
print(f"a + b = {a + b}")
python 复制代码
请输入第一个数字: 123
请输入第二个数字: 456
a + b = 579

五、运算符

5.1 算术运算符

Python中的算术运算符,包括+-*/%**(幂)、//(地板除)。

注意事项:

两个整数相除后可能得到的是一个浮点数。不会舍弃小数
**可以求一个数的整数次方,也可以求一个数的小数次方
//是地板除,整数除以整数得到的结果还是整数(舍弃小数部分,向下取整)

5.2 关系运算符

<<=>>===!= 这一系列的运算符称为 关系运算符, 它们是在比较操作数之间的关系。

这里特殊说一下两个字符串也可以直接比较大小。

用的是字典序比较

而浮点数比较不能直接使用==来判断两个浮点数是否相等,因为浮点数在计算机中的表示并不是精确的。比如:

python 复制代码
print(0.1 + 0.2 == 0.3) # False
print(0.1 + 0.2) # 0.30000000000000004

正确的比较方式应该是,判定这两个浮点数的差值是否小于允许的误差范围。比如:

python 复制代码
a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)  # True

5.3 逻辑运算符

and or not 这一系列的运算符称为逻辑运算符

  • and:并且。两侧操作数均为True,则最终结果为True,否则为False(一假则假)
  • or:或者。两侧操作数均为False,则最终结果为False,否则为True(一真则真)
  • not:逻辑取反。操作数本身为True,则返回False,本身为False,则返回True。
python 复制代码
a = 100
b = 200
print(not a > b) # True

细节问题:

在Python中支持连续比较,a < b and b < c等价于a < b < c,这个设定与其他编程语言都不相同。

5.4 赋值运算符

  • =的使用

链式赋值是使用=同时对多个变量进行赋值的常见方式,比如:

python 复制代码
a = b = 100
print(f"a = {a}, b = {b}") # a = 100, b = 100

多元赋值:

python 复制代码
a, b = 100, 200
print(f"a = {a}, b = {b}") # a = 100, b = 200

多元赋值能帮我们解决一些特殊问题,比如完成两个变量的交换

python 复制代码
a, b = 100, 200
a, b = b, a
print(a, b) # 200 100
  • 复合赋值运算符

对于复合赋值运算符+=来说,a += 1等价于a = a + 1,其他复合赋值运算符也是类似的道理。

注意:

C/C++等某些语言中支持++和--运算符,但Python中不支持这种运算符,如果需要对变量进行自增/自减,则直接进行对应的+= 1/-= 1操作。

相关推荐
databook10 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar11 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805111 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_11 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机18 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机19 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i19 小时前
drf初步梳理
python·django
每日AI新事件19 小时前
python的异步函数
python