【Python】算法笔记
1 输入
在 Python 中,可以使用 `input()` 函数接收控制台的输入,然后将其转换为数字类型(整数或浮点数)。以下是几种常见的方法:
### 1. 接收整数输入
```python
num = int(input("请输入一个整数: "))
print("你输入的数字是:", num)
```
### 2. 接收浮点数输入
```python
num = float(input("请输入一个浮点数: "))
print("你输入的数字是:", num)
```
### 3. 处理异常(避免输入非数字时报错)
```python
try:
num = float(input("请输入一个数字: "))
print("你输入的数字是:", num)
except ValueError:
print("输入无效,请确保输入的是数字!")
```
### 4. 接收多个数字(例如,一行输入多个数字,用空格分隔)
```python
input_str = input("请输入多个数字,用空格分隔: ")
numbers = list(map(float, input_str.split()))
print("你输入的数字列表是:", numbers)
```
### **`map()` 的作用是什么?**
`map()` 是 Python 的一个内置函数,它的作用是对一个可迭代对象(如列表)中的每个元素应用某个函数,并返回一个新的迭代器。
#### **语法:**
```python
map(function, iterable)
```
- `function`:要应用的函数(如 `int`、`float`、`str` 等)。
- `iterable`:可迭代对象(如列表、元组等)。
---
### **`numbers = list(map(float, input_str.split()))` 解析**
1. **`input_str.split()`**
- `input()` 接收的是字符串,例如 `"10 20 30.5"`。
- `.split()` 默认按空格分割字符串,返回一个字符串列表:
```python
["10", "20", "30.5"]
```
2. **`map(float, ...)`**
- `map(float, ["10", "20", "30.5"])` 会对列表中的每个元素应用 `float()` 函数,转换成浮点数:
```python
[10.0, 20.0, 30.5] # 但 map() 返回的是迭代器,不是列表
```
3. **`list(map(...))`**
- `map()` 返回的是一个迭代器(`map object`),用 `list()` 将其转换成列表:
```python
[10.0, 20.0, 30.5] # 最终结果
```
---
### **替代写法(列表推导式)**
除了 `map()`,也可以用 **列表推导式** 实现相同功能:
```python
numbers = [float(x) for x in input_str.split()]
```
- 效果和 `map(float, ...)` 一样,但更直观。