Skip to content

Commit

Permalink
feat:add python data type conversion
Browse files Browse the repository at this point in the history
  • Loading branch information
ptsfdtz committed Feb 20, 2024
1 parent 11c3c5f commit 872acfd
Show file tree
Hide file tree
Showing 6 changed files with 185 additions and 152 deletions.
2 changes: 1 addition & 1 deletion src/Python/Chapter3.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 数据类型和转换
# 数据类型

数据类型是大多数编程语言的核心概念之一。数据类型定义了数据的性质,以及对这些数据可以执行的操作。编程语言使用数据类型来组织、存储和操作数据,以便程序可以正确地执行任务。

Expand Down
170 changes: 23 additions & 147 deletions src/Python/Chapter4.md
Original file line number Diff line number Diff line change
@@ -1,156 +1,32 @@
# 运算符
# 数据类型转换

python 中主要有七类运算符
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可

包括算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符、身份运算符和成员运算符。
可以使用内置的类型转换函数来在不同的数据类型之间进行转换。以下是一些常用的类型转换函数:

## 1. 算数运算符
| 类型转换函数 | 转换目标 | 可被转换的类型 |
| :----------: | :------: | :--------------------------------------------: |
| int() | 整数 | 字符串,浮点数,布尔值 |
| float() | 浮点数 | 整数,字符串,布尔值 |
| str() | 字符串 | 整数,浮点数,布尔值,列表,元组,集合 |
| list() | 列表 | 可迭代对象(字符串、元组、集合等) |
| tuple() | 元组 | 可迭代对象(字符串、列表、集合等) |
| set() | 集合 | 可迭代对象(字符串、列表、元组等) |
| bool() | 布尔类型 | 整数,浮点数,字符串,列表,元组,集合,空对象 |

可以参考上一篇 [数值运算](https://book.jinhun.moe/Python/Chapter3.html#5-%E6%95%B0%E5%80%BC%E8%BF%90%E7%AE%97)
## Try yourself

## 2. 比较运算符

此时假设 `a = 1 b = 2`

| 运算符 | 描述 | 实例 |
| :----: | :------: | :---------------------: |
| == | 等于 | (a == b) return False。 |
| != | 不等于 | (a != b) return True。 |
| > | 大于 | (a > b) return False。 |
| < | 小于 | (a < b) return True。 |
| >= | 大于等于 | (a >= b) return False。 |
| <= | 小于等于 | (a <= b) return True。 |

```py
x = 1
y = 2

print(x == y,x != y,x > y,x < y,x >= y,x <= y)
```

## 3. 赋值运算符

此时假设 `a = 1 b = 2 c = 3`

| 赋值运算符 | 描述 | 实例 |
| :--------: | :----: | :-----------------------: |
| = | 等于 | c = a + b => a + b = c |
| += | 加法 | c += a => c = c + a |
| -= | 减法 | c -= a => c = c - a |
| \*= | 乘法 | c \*= a =>c = c \* a |
| /= | 除法 | c /= a => c = c / a |
| %= | 取模 | c %= a => c = c % a |
| \*\*= || c \*\*= a => c = c \*\* a |
| //= | 取整除 | c //= a => c = c // a |

```py
a, b, c = 1, 2, 3
d = a

print(a, b, c, d, a + b, b - c, c * a)
```

## 4. 位运算符

位运算符是把数字看作二进制来进行计算的。

位运算符通常用于处理底层的位操作,例如在编码、加密、图形处理等领域。在一般情况下,位运算符不太常见,但在某些特定的计算机科学和嵌入式系统的应用中非常有用。

下表中变量 a 为 60,b 为 13 二进制格式如下:

```py

a , b, c = 2 , 1 , 0

c = a & b
print ("1 - c 的值为:", c)

c = a | b
print ("2 - c 的值为:", c)

c = a ^ b
print ("3 - c 的值为:", c)

c = ~a
print ("4 - c 的值为:", c)

c = a << 2
print ("5 - c 的值为:", c)

c = a >> 2
print ("6 - c 的值为:", c)
```

## 5. 逻辑运算符

逻辑运算符通常用于控制程序的流程,例如在条件语句中判断多个条件。逻辑运算符返回布尔值,可以帮助你在程序中做出合理的决策。

`and``or`` not`

```py
# 逻辑与
x = True
y = False
print(x and y , x or y , not x) # 输出: False True False
```

## 6. 成员运算符

成员运算符用于检查某个值是否属于序列(例如列表、元组、字符串等)中。在 Python 中,常用的成员运算符包括:

in:如果在序列中找到指定的值,则返回`True`,否则返回`False`

not in:如果在序列中找到指定的值,则返回`False`,否则返回`True`

成员运算符常用于在条件语句中检查某个值是否存在于给定的序列中。

```py
numbers = [1, 2, 3, 4, 5]

print(3 in numbers) # 输出: True
print(6 not in numbers) # 输出: True

string = "Hello, World!"

print("Hello" in string) # 输出: True
print("Python" not in string) # 输出: True
```

## 7. 身份运算符

身份运算符用于比较对象的存储地址,判断它们是否是同一个对象。在 Python 中,有两个身份运算符:`is``is not`

is:如果两个变量引用同一个对象,则返回 `True`;否则返回 `False`

is not:如果两个变量引用的不是同一个对象,则返回 `True`;否则返回 `False`

```py
a = [1, 2, 3]
b = a # b引用了和a相同的对象

print(a is b) # 输出: True,因为a和b引用同一个对象
print(a is not b) # 输出: False,因为a和b引用同一个对象

c = [1, 2, 3]

print(a is c) # 输出: False,因为a和c引用不同的对象
print(a is not c) # 输出: True,因为a和c引用不同的对象
```

虽然 a 和 c 都是[1,2,3]的数组,但是由于存储地址不同,所以 a 不是 c。

## 8. Try yourself

1. 通过用户输入三角形三边长度,并计算三角形的面积,面积公式:s = (d(d-a)(d-b)(d-c))<sup>0.5</sup>。

```sh
#example
>>> 输入三角形的三条边长度,用空格分隔: 2 5 6
>>> 三角形的面积:4.68
```
试着去转换下面的变量:

```py
#--------------------
num_str_int = "42"
num_str_float = "3.14"
num = 42
my_tuple = (1, 2, 3)
my_list = [4, 5, 6]
zero = 0
one = 1

print(type(num_str_int),type(int(num_str_int)))
#Enter your code here
#--------------------
```
157 changes: 156 additions & 1 deletion src/Python/Chapter5.md
Original file line number Diff line number Diff line change
@@ -1 +1,156 @@
# 变量类型
# 运算符

python 中主要有七类运算符。

包括算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符、身份运算符和成员运算符。

## 1. 算数运算符

可以参考上一篇 [数值运算](https://book.jinhun.moe/Python/Chapter3.html#5-%E6%95%B0%E5%80%BC%E8%BF%90%E7%AE%97)

## 2. 比较运算符

此时假设 `a = 1 b = 2`

| 运算符 | 描述 | 实例 |
| :----: | :------: | :---------------------: |
| == | 等于 | (a == b) return False。 |
| != | 不等于 | (a != b) return True。 |
| > | 大于 | (a > b) return False。 |
| < | 小于 | (a < b) return True。 |
| >= | 大于等于 | (a >= b) return False。 |
| <= | 小于等于 | (a <= b) return True。 |

```py
x = 1
y = 2

print(x == y,x != y,x > y,x < y,x >= y,x <= y)
```

## 3. 赋值运算符

此时假设 `a = 1 b = 2 c = 3`

| 赋值运算符 | 描述 | 实例 |
| :--------: | :----: | :-----------------------: |
| = | 等于 | c = a + b => a + b = c |
| += | 加法 | c += a => c = c + a |
| -= | 减法 | c -= a => c = c - a |
| \*= | 乘法 | c \*= a =>c = c \* a |
| /= | 除法 | c /= a => c = c / a |
| %= | 取模 | c %= a => c = c % a |
| \*\*= || c \*\*= a => c = c \*\* a |
| //= | 取整除 | c //= a => c = c // a |

```py
a, b, c = 1, 2, 3
d = a

print(a, b, c, d, a + b, b - c, c * a)
```

## 4. 位运算符

位运算符是把数字看作二进制来进行计算的。

位运算符通常用于处理底层的位操作,例如在编码、加密、图形处理等领域。在一般情况下,位运算符不太常见,但在某些特定的计算机科学和嵌入式系统的应用中非常有用。

下表中变量 a 为 60,b 为 13 二进制格式如下:

```py

a , b, c = 2 , 1 , 0

c = a & b
print ("1 - c 的值为:", c)

c = a | b
print ("2 - c 的值为:", c)

c = a ^ b
print ("3 - c 的值为:", c)

c = ~a
print ("4 - c 的值为:", c)

c = a << 2
print ("5 - c 的值为:", c)

c = a >> 2
print ("6 - c 的值为:", c)
```

## 5. 逻辑运算符

逻辑运算符通常用于控制程序的流程,例如在条件语句中判断多个条件。逻辑运算符返回布尔值,可以帮助你在程序中做出合理的决策。

`and``or`` not`

```py
# 逻辑与
x = True
y = False
print(x and y , x or y , not x) # 输出: False True False
```

## 6. 成员运算符

成员运算符用于检查某个值是否属于序列(例如列表、元组、字符串等)中。在 Python 中,常用的成员运算符包括:

in:如果在序列中找到指定的值,则返回`True`,否则返回`False`

not in:如果在序列中找到指定的值,则返回`False`,否则返回`True`

成员运算符常用于在条件语句中检查某个值是否存在于给定的序列中。

```py
numbers = [1, 2, 3, 4, 5]

print(3 in numbers) # 输出: True
print(6 not in numbers) # 输出: True

string = "Hello, World!"

print("Hello" in string) # 输出: True
print("Python" not in string) # 输出: True
```

## 7. 身份运算符

身份运算符用于比较对象的存储地址,判断它们是否是同一个对象。在 Python 中,有两个身份运算符:`is``is not`

is:如果两个变量引用同一个对象,则返回 `True`;否则返回 `False`

is not:如果两个变量引用的不是同一个对象,则返回 `True`;否则返回 `False`

```py
a = [1, 2, 3]
b = a # b引用了和a相同的对象

print(a is b) # 输出: True,因为a和b引用同一个对象
print(a is not b) # 输出: False,因为a和b引用同一个对象

c = [1, 2, 3]

print(a is c) # 输出: False,因为a和c引用不同的对象
print(a is not c) # 输出: True,因为a和c引用不同的对象
```

虽然 a 和 c 都是[1,2,3]的数组,但是由于存储地址不同,所以 a 不是 c。

## 8. Try yourself

1. 通过用户输入三角形三边长度,并计算三角形的面积,面积公式:s = (d(d-a)(d-b)(d-c))<sup>0.5</sup>。

```sh
#example
>>> 输入三角形的三条边长度,用空格分隔: 2 5 6
>>> 三角形的面积:4.68
```

```py
#--------------------
#Enter your code here
#--------------------
```
1 change: 1 addition & 0 deletions src/Python/Chapter8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# 循环语句
1 change: 1 addition & 0 deletions src/Python/Chapter9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# 函数
6 changes: 3 additions & 3 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@

- [环境搭建](Python/Chapter1.md)
- [基础语法](Python/Chapter2.md)
- [数据类型和转换](Python/Chapter3.md)
- [运算符](Python/Chapter4.md)
- [变量类型](Python/Chapter5.md)
- [数据类型](Python/Chapter3.md)
- [数据类型转换](Python/Chapter4.md)
- [运算符](Python/Chapter5.md)
- [条件语句](Python/Chapter6.md)
- [循环语句](Python/Chapter7.md)

Expand Down

0 comments on commit 872acfd

Please sign in to comment.