【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操作。

相关推荐
好喜欢吃红柚子4 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python8 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
k093310 分钟前
sourceTree回滚版本到某次提交
开发语言·前端·javascript
神奇夜光杯18 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
Themberfue20 分钟前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
plmm烟酒僧21 分钟前
Windows下QT调用MinGW编译的OpenCV
开发语言·windows·qt·opencv
千天夜29 分钟前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
测试界的酸菜鱼33 分钟前
Python 大数据展示屏实例
大数据·开发语言·python
羊小猪~~37 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
晨曦_子画42 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin