数据结构算法——python基础
·
python基础
输出
1 标准输出
### 1. 打印单个值
print("Hello Python") # 输出:Hello Python
print(123 + 456) # 输出:579
### 2. 打印多个值(默认用空格分隔)
name = "小明"
age = 18
print("姓名:", name, "年龄:", age) # 输出:姓名: 小明 年龄: 18
### 3. 自定义分隔符/结束符
print("a", "b", "c", sep="-") # 分隔符改为-,输出:a-b-c
print("第一行", end="") # 结束符改为空(默认是换行\n),下一个print不换行
print("第二行") # 输出:第一行第二行
### 4. 打印到文件(临时替代文件写入)
with open("output.txt", "w", encoding="utf-8") as f:
print("写入文件的内容", file=f) # 内容会写入output.txt,而非控制台
2 格式化输出
name = "小红"
score = 98.5
# 方式1:f-string(Python 3.6+ 推荐,简洁直观)
print(f"姓名:{name},成绩:{score}分") # 输出:姓名:小红,成绩:98.5分
print(f"成绩保留1位小数:{score:.1f}") # 格式化数值,输出:成绩保留1位小数:98.5
# 方式2:format() 函数(兼容低版本Python)
print("姓名:{},成绩:{}分".format(name, score)) # 输出同上
print("成绩保留1位小数:{:.1f}".format(score)) # 输出同上
3 文件输出
# 方式1:基础文件写入(注意编码,避免中文乱码)
# "w" 表示覆盖写入,"a" 表示追加写入
with open("data.txt", "w", encoding="utf-8") as f:
f.write("这是写入文件的第一行\n") # 写入字符串,需手动加换行符\n
f.writelines(["第二行\n", "第三行\n"]) # 批量写入多行
# 方式2:CSV文件(适合表格数据)
import csv
with open("score.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["姓名", "成绩"]) # 写入表头
writer.writerow(["小红", 98.5]) # 写入数据行
输入
1 标准输入
### 单个输入
# 1. 获取字符串输入
name = input("请输入你的姓名:") # 输入:小明 → name = "小明"
print(f"你好,{name}")
# 2. 获取数值输入(需转换类型)
age = int(input("请输入你的年龄:")) # 输入:18 → 转换为整数18
height = float(input("请输入你的身高(米):")) # 输入:1.75 → 转换为浮点数1.75
print(f"明年你{age+1}岁,身高{height}米")
# 3. 处理输入异常(新手进阶:避免用户输入非数值导致崩溃)
try:
score = int(input("请输入你的成绩:"))
print(f"成绩是:{score}")
except ValueError:
print("输入错误!请输入数字。")
### 多个输入
#### 多个字符
# 输入示例:小明 18 北京(用空格分隔)
# split() 无参数时,默认按任意空白符(空格、制表符、换行)拆分
inputs = input("请输入姓名 年龄 城市(空格分隔):").split()
name = inputs[0] # 第一个值:姓名
age = inputs[1] # 第二个值:年龄
city = inputs[2] # 第三个值:城市
print(f"姓名:{name},年龄:{age},城市:{city}")
# 输出:姓名:小明,年龄:18,城市:北京
#### 多个数值
# 输入示例:80 90 95(三个成绩,空格分隔)
# 先拆分,再批量转换为整数
scores = list(map(int, input("请输入三门成绩(空格分隔):").split()))
# map(int, ...) 把拆分后的每个字符串转成整数,再转成列表
# 计算平均分
average = sum(scores) / len(scores)
print(f"成绩列表:{scores},平均分:{average:.1f}")
# 输出:成绩列表:[80, 90, 95],平均分:88.3
#### 指定分隔符
# 输入示例:小红,98.5,语文(逗号分隔)
# split(',') 按逗号拆分
name, score, subject = input("请输入姓名,成绩,科目(逗号分隔):").split(',')
# 直接解包到变量(注意:拆分后的数量要和变量数一致)
# 转换成绩为浮点数
score = float(score)
print(f"{name}的{subject}成绩是:{score}分")
# 输出:小红的语文成绩是:98.5分
2 文件输入
# 方式1:读取文本文件(按行读取)
with open("data.txt", "r", encoding="utf-8") as f:
lines = f.readlines() # 读取所有行,返回列表
for line in lines:
print(line.strip()) # strip() 去掉换行符/空格
# 方式2:读取CSV文件(表格数据)
import csv
with open("score.csv", "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
print(f"姓名:{row[0]},成绩:{row[1]}") # 按列索引获取数据
# 方式3:读取大文件(逐行读取,避免占用过多内存)
with open("big_file.txt", "r", encoding="utf-8") as f:
for line in f: # 逐行读取,适合超大文件
print(line.strip())
3 网络输入api
API调用方式示例
# 需要先安装requests库:pip install requests
import requests
# 示例:获取网络接口数据(JSON格式)
response = requests.get("https://api.github.com/users/octocat")
if response.status_code == 200: # 状态码200表示请求成功
data = response.json() # 解析JSON数据为字典
print(f"用户名:{data['login']},仓库数:{data['public_repos']}")
else:
print("请求失败!")
数据类型
基础数据类型如下:
| 类型 | 英文名称 | 示例 |
|---|---|---|
| 整数 | int | 10, -5 |
| 浮点数 | float | 3.14, 2.5 |
| 布尔值 | bool | True, False |
| 字符串 | str | "hello", 'Python' |
| 空值 | NoneType | None |
注意点:
1. Python 的 int 最大优势是无大小限制,使用时记住输入必须 int() 强转、除法会变浮点数等。
2. None判断相等推荐用 is 而不是 ==
== 比较的是值是否相等
is 比较的是是不是同一个对象
None 在 Python 里全局只有一个,永远只有一个实例,所以判断是不是 None 应该用is,有些方法重载eq()函数用==会出错。
运算符
python运算符速记
算术:+ 加 - 减 * 乘 / 除(结果是 float) // 整除(取整数部分) % 取余(模运算) ** 幂运算(次方)
赋值:= 赋值 += 加等于 -= 减等于 *= 乘等于 /= 除等于 //= 整除等于 %= 取余等于 **= 幂等于
比较:== 等于 != 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于
逻辑:and 与(都真才真) or 或(一个真就真) not 非(取反)
成员:in 在里面 not in 不在里面
身份:is 是同一个对象 is not 不是同一个对象
位运算:& 按位与 | 按位或 ^ 按位异或 ~ 按位取反 << 左移 >> 右移
注意点://是整除,%是取余,**是幂运算
控制语句
python中的控制语句,主要有条件语句、循环语句、异常处理。
异常处理示例
try:
可能出错的代码
except:
出错时执行
finally:
无论如何都执行
| 控制流类型 | 关键字 |
|---|---|
| 条件语句 | if、elif、else |
| 循环语句 | for、while、break、continue、pass |
| 异常处理 | try、except、finally、raise |
更多推荐



所有评论(0)