文章目录
- 一、数据类型 内置的六大类
- 数字类型
- 整数类型 int
- 浮点数 float
- 布尔 bool
- 字符串 str
- 变量命名
- 二、数字类型的相互转换
- 显式类型的转换
- 整数,浮点数,复数 之间的显式转换
- 隐式类型的转换
- 三、标识符
- 算术运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 运算符优先级
- 四、分支结构
- if elif else
- while 循环
- for 循环
- break
- continue
- return
一、数据类型 内置的六大类
要想在计算机的内存中保存数据,首先得说一说变量这个概念。在编程语言中,变量是数据的载体,简单的说就是一块用来保存数据的内存空间,变量的值可以被读取和修改,这是所有运算和控制的基础。
计算机能处理的数据有很多种类型,最常见的就是数值,除了数值之外还有文本、图像、音频、视频等各种各样的数据类型。虽然数据在计算机中都是以二进制形态存在的,但是我们可以用不同类型的变量来表示数据类型的差异。
数字类型
整数类型 int
Python 中可以处理任意大小的整数,而且支持二进制,八进制,十进制,十六进制。示例如下:
0b11100 # 二进制
0o111 # 八进制
0x111 # 十六进制
浮点数 float
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2,表示 1.23456 × 1 0 2 \small{1.23456 \times 10^{2}} 1.23456×102)。运行下面的代码,看看会输出什么。
print(123.456) # 数学写法
print(1.23456e2) # 科学计数法
布尔 bool
布尔型只有 True
、False
两种值,要么是 True
,要么是 False
,可以用来表示现实世界中的“是”和“否”,命题的“真”和“假”,状况的“好”与“坏”,水平的“高”与“低”等等。如果一个变量的值只有两种状态,我们就可以使用布尔型。
布尔是 int
的子类,其他类型可以转换为布尔类型。
字符串 str
字符串是以单引号或双引号包裹起来的任意文本,比如 'hello'
和 "hello"
。
变量命名
在 Python 中,变量命名需要遵循以下的规则和惯例:
- 规则部分:
- 规则1: 变量名由字母、数字和下划线构成,数字不能开头。需要说明的是,这里说的字母指的是 Unicode 字符,Unicode 称为万国码,囊括了世界上大部分的文字系统,这也就意味着中文、日文、希腊字母等都可以作为变量名中的字符,但是一些特殊字符(如:!、@、#等)是不能出现在变量名中的。我们强烈建议大家把这里说的字母理解为尽可能只使用英文字母。
- 规则2: Python 是大小写敏感的编程语言,简单的说就是大写的
A
和小写的a
是两个不同的变量,这一条其实并不算规则,而是需要大家注意的地方。 - 规则3: 变量名不要跟 Python 的关键字重名,尽可能避开 Python 的保留字。
- 惯例部分:
- 惯例1: 变量名通常使用小写英文字母,多个单词用下划线进行连接。
- 惯例2: 受保护的变量用单个下划线开头。
- 惯例3: 私有的变量用两个下划线开头。
二、数字类型的相互转换
显式类型的转换
显式类型转换是指通过调用特定的函数来明确地将一种数据类型转换为另一种数据类型。
整数,浮点数,复数 之间的显式转换
# 整数转浮点数
int_num = 10
float_num = float(int_num)
print(f"整数 {int_num} 转换为浮点数是 {float_num},类型为 {type(float_num)}")
# 浮点数转整数,会截断小数部分
float_num = 15.8
int_num = int(float_num)
print(f"浮点数 {float_num} 转换为整数是 {int_num},类型为 {type(int_num)}")
# 整数转复数
int_num = 20
complex_num = complex(int_num)
print(f"整数 {int_num} 转换为复数是 {complex_num},类型为 {type(complex_num)}")
# 浮点数转复数
float_num = 25.5
complex_num = complex(float_num)
print(f"浮点数 {float_num} 转换为复数是 {complex_num},类型为 {type(complex_num)}")
# 复数转整数或浮点数,只能获取实部
complex_num = complex(30, 5)
real_part_float = float(complex_num.real)
real_part_int = int(complex_num.real)
print(f"复数 {complex_num} 的实部转换为浮点数是 {real_part_float},类型为 {type(real_part_float)}")
print(f"复数 {complex_num} 的实部转换为整数是 {real_part_int},类型为 {type(real_part_int)}")
隐式类型的转换
操作数 1 类型 | 操作数 2 类型 | 隐式转换规则 | 结果类型 |
---|---|---|---|
int | float | int 转换为 float | float |
int | complex | int 转换为 complex (实部为原整数,虚部为 0) | complex |
float | complex | float 转换为 complex (实部为原浮点数,虚部为 0) | complex |
bool | int | True 转换为 1,False 转换为 0 | int |
bool | float | True 转换为 1.0,False 转换为 0.0 | float |
bool | complex | True 转换为 complex(1, 0) ,False 转换为 complex(0, 0) | complex |
可以通过 Python 内置的函数来改变变量的类型,下面是一些常用的和变量类型相关的函数:
int()
:将一个数值或字符串转换成整数,可以指定进制。float()
:将一个字符串(在可能的情况下)转换成浮点数。str()
:将指定的对象转换成字符串形式,可以指定编码方式。chr()
:将整数(字符编码)转换成对应的(一个字符的)字符串。ord()
:将(一个字符的)字符串转换成对应的整数(字符编码)。
"""
变量的类型转换操作
"""
a = 100
b = 123.45
c = '123'
d = '100'
e = '123.45'
f = 'hello, world'
g = True
print(float(a)) # int类型的100转成float,输出100.0
print(int(b)) # float类型的123.45转成int,输出123
print(int(c)) # str类型的'123'转成int,输出123
print(int(c, base=16)) # str类型的'123'按十六进制转成int,输出291
print(int(d, base=2)) # str类型的'100'按二进制转成int,输出4
print(float(e)) # str类型的'123.45'转成float,输出123.45
print(bool(f)) # str类型的'hello, world'转成bool,输出True
print(int(g)) # bool类型的True转成int,输出1
print(chr(a)) # int类型的100转成str,输出'd'
print(ord('d')) # str类型的'd'转成int,输出100
说明:str
类型转 int
类型时可以通过 base
参数来指定进制,可以将字符串视为对应进制的整数进行转换。str
类型转成 bool
类型时,只要字符串有内容,不是 ''
或 ""
,对应的布尔值都是 True
。bool
类型转 int
类型时,True
会变成 1,False
会变成 0。在 ASCII 字符集和 Unicode 字符集中, 字符 'd'
对应的编码都是 100。
三、标识符
算术运算符
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
+ | 加 | a + b | 求 a 和 b 的和 |
- | 减 | a - b | 求 a 与 b 的差 |
* | 乘 | a * b | 求 a 与 b 的积 |
/ | 除 | a / b | 求 a 除以 b 的商 |
% | 取余 | a % b | 求 a 除以 b 的余数 |
** | 幂 | a ** b | 求 a 的 b 次幂 |
// | 地板除法 | a // b | 求小于 a 与 b 的商的最大整数 |
比较运算符
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
== | 等于 | a == b | a 等于 b 返回 True ,否则返回 False |
!= | 不等于 | a != b | 与 == 相反 |
> | 大于 | a > b | a 大于 b 时返回 True ,否则返回 False |
< | 小于 | a < b | a 小于 b 时返回 True ,否则返回 False |
>= | 大于等于 | a >= b | a 大于等于 b 时返回 True ,否则返回 False |
<= | 小于等于 | a <= b | a 小于等于 b 时返回 True ,否则返回 False |
逻辑运算符
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
not | 逻辑非 | not a | a 为 True 时,值为 False ,a 为 False 时,值为 True |
and | 逻辑与 | a and b | a ,b 全为 True 时,计算结果为 True ,否则为 False |
or | 逻辑或 | a or b | a ,b 全为 False 时,计算结果为 False ,否则为 True |
位运算符
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
~ | 位反 | ~x | 将 x 的值按位取反 |
& | 位与 | x & y | 将 x 与 y 按位进行位运算 |
| | 位或 | x|y | 将 x 与 y 按位进行或运算 |
^ | 位异或 | x ^ y | 将 x 与 y 按位进行位异或运算 |
>> | 右移 | x >> a | 将 x 右移 a 位,高位采用符号位补位 |
<< | 左移 | x << a | 将 x 左移 a 位,低位用 0 补位 |
赋值运算符
运算符 | 名称 | 例子 | 说明 |
---|---|---|---|
+= | 加赋值 | a += b | 等于 a = a + b |
-= | 减赋值 | a -= b | 等于 a = a - b |
*= | 乘赋值 | a *= b | 等于 a = a * b |
/= | 除赋值 | a /= b | 等于 a = a / b |
%= | 取余赋值 | a %= b | 等于 a = a % b |
**= | 幂赋值 | a **= b | 等于 a = a ** b |
//= | 地板除法赋值 | a //= b | 等于 a = a // b |
&= | 位与赋值 | a &= b | 等价于 a = a & b |
|= | 位或赋值 | `a | = b` |
^= | 位异或赋值 | a ^= b | 等价于 a = a ^ b |
<<= | 左移赋值 | a <<= b | 等价于 a = a << b |
>>= | 右移赋值 | a >>= b | 等价于 a = a >> b |
运算符优先级
优先级 | 运算符 | 说明 |
---|---|---|
1 | () | 小括号 |
2 | ** | 幂 |
3 | ~ | 位反 |
4 | +,- | 正负号 |
5 | *,/,%,// | 乘,除,取余,地板除 |
6 | +,- | 加,减 |
7 | <<,>> | 位移 |
8 | & | 位与 |
9 | ^ | 位异或 |
10 | ` | ` |
11 | <,<=,>,>=,<>,!= | 比较 |
12 | not | 逻辑非 |
13 | and,or | 逻辑与,逻辑或 |
四、分支结构
if elif else
if
、elif
和 else
语句用于根据条件的真假来决定执行哪些代码块,实现程序的分支逻辑。
if condition1:
# 如果 condition1 为真,执行这里的代码
statement1
elif condition2:
# 如果 condition1 为假且 condition2 为真,执行这里的代码
statement2
else:
# 如果前面的条件都为假,执行这里的代码
statement3
age = 20
if age < 18:
print("你是未成年人")
elif age < 60:
print("你是成年人")
else:
print("你是老年人")
while 循环
while
循环用于在条件为真时重复执行代码块,直到条件变为假。
while condition:
# 只要 condition 为真,就会一直执行这里的代码
statement
# 示例
count = 0
while count < 5:
print(count)
count = count + 1
for 循环
for
循环用于遍历可迭代对象(如列表、元组、字符串等)中的元素。
for variable in iterable:
# 对 iterable 中的每个元素执行这里的代码
statement
# 示例
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
break
break
语句用于在循环中提前终止循环,即使循环条件仍然为真。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
break
print(fruit)
continue
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
continue
print(fruit)
return
return
语句用于从函数中返回一个值,并终止函数的执行。
def function_name():
# 函数体
return value
# 示例
def add_numbers(a, b):
return a + b
result = add_numbers(3, 5)
print(result)
希望以上 Markdown 格式的内容符合你在 CSDN 上展示的需求,如果还有其他需要调整的地方,请随时告诉我。