要想在计算机的内存中保存数据,首先得说一说变量这个概念。在编程语言中,变量是数据的载体,简单的说就是一块用来保存数据的内存空间,变量的值可以被读取和修改,这是所有运算和控制的基础。
计算机能处理的数据有很多种类型,最常见的就是数值,除了数值之外还有文本、图像、音频、视频等各种各样的数据类型。虽然数据在计算机中都是以二进制形态存在的,但是我们可以用不同类型的变量来表示数据类型的差异。
Python 中可以处理任意大小的整数,而且支持二进制,八进制,十进制,十六进制。示例如下:
0b11100 # 二进制
0o111 # 八进制
0x111 # 十六进制
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2,表示 1.23456 × 1 0 2 \small{1.23456 \times 10^{2}} 1.23456×102)。运行下面的代码,看看会输出什么。
print(123.456) # 数学写法
print(1.23456e2) # 科学计数法
布尔型只有 True
、False
两种值,要么是 True
,要么是 False
,可以用来表示现实世界中的“是”和“否”,命题的“真”和“假”,状况的“好”与“坏”,水平的“高”与“低”等等。如果一个变量的值只有两种状态,我们就可以使用布尔型。
布尔是 int
的子类,其他类型可以转换为布尔类型。
字符串是以单引号或双引号包裹起来的任意文本,比如 'hello'
和 "hello"
。
在 Python 中,变量命名需要遵循以下的规则和惯例:
A
和小写的 a
是两个不同的变量,这一条其实并不算规则,而是需要大家注意的地方。显式类型转换是指通过调用特定的函数来明确地将一种数据类型转换为另一种数据类型。
# 整数转浮点数
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 condition1:
# 如果 condition1 为真,执行这里的代码
statement1
elif condition2:
# 如果 condition1 为假且 condition2 为真,执行这里的代码
statement2
else:
# 如果前面的条件都为假,执行这里的代码
statement3
age = 20
if age < 18:
print("你是未成年人")
elif age < 60:
print("你是成年人")
else:
print("你是老年人")
while
循环用于在条件为真时重复执行代码块,直到条件变为假。
while condition:
# 只要 condition 为真,就会一直执行这里的代码
statement
# 示例
count = 0
while count < 5:
print(count)
count = count + 1
for
循环用于遍历可迭代对象(如列表、元组、字符串等)中的元素。
for variable in iterable:
# 对 iterable 中的每个元素执行这里的代码
statement
# 示例
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
break
语句用于在循环中提前终止循环,即使循环条件仍然为真。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
break
print(fruit)
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
continue
print(fruit)
return
语句用于从函数中返回一个值,并终止函数的执行。
def function_name():
# 函数体
return value
# 示例
def add_numbers(a, b):
return a + b
result = add_numbers(3, 5)
print(result)
希望以上 Markdown 格式的内容符合你在 CSDN 上展示的需求,如果还有其他需要调整的地方,请随时告诉我。