python基础语法篇——输入与输出

本文介绍了Python中Input/Output的基本概念,包括input()函数的使用,输出的格式化技巧,以及文件I/O的详细步骤,如open()函数的各种模式、读写操作和序列化与反序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python基础语法篇——输入与输出


信息的输入与输出统称为Input/Output,简写为I/O,此外I/O不仅仅指键盘输入,屏幕打印输出,还有文件的输入与输出。

一、Input 与 Output

1) input

"""
 !!!返回字符串类型
 要得到需要的数据类型
 需要进行数据类型强制转换
"""
input()  

2) output

a、普通输出
print(…)
多个变量之间用逗号隔开,print函数会依次打印,遇到逗号会用空格代替,且print函数可以进行自动地计算。
print()参数
在这里插入图片描述

在这里插入图片描述

b、格式化输出
使用方式:在%后面加上相应的格式符以占位,再进行替换和输出。
在这里插入图片描述

示例:

# %s  代表字符串   %d  代表数值
name,age='wy',20
print('name: %s, age: %d' % (name,age))
print('%s,%d' %(name,age))

#output
# name: wy, age: 20
# wy,20

二、文件I/O

定义数据文件(即文件路径)——获取文件对象——读取文件内容——关闭文件对象
1)函数说明
open、read、readline、readlines、write、close

#打开/创建文件
file_object=open(文件路径,访问模式)   # 返回文件对象

"""
读取方式:
1.read(size) 
读取全部数据,直至达到定义的字节数上限size,省略则默认读取文件的所有数据
按字节读
返回:内容字符串,所有行合并为一个字符串
2.readline()
读取一行数据,直至达到定义的字节数上限
按行读
返回:内容字符串
3.readlines(size)
读取文件的全部数据,直至达到定义的字节数上限size,省略则默认读取文件的所有数据
按行读,一行一行读
返回内容列表,每行数据作为列表的一个元素
"""
file_object.read('data.txt','r+')
file_object.read()  #一字节一字节地读,效率较低
file_object.readlines()  #一行一行读但是返回的是列表形式,列表的元素即为文件一行一行的内容
file_object.write(str)  #使用文件对象写入字符类型的内容,默认为空 
file_object.close()  #关闭文件


#with open 的形式
# 读取整个文件
with open('pi_digits.txt') as file_object:
    contents = file_object.read()
print(contents)
'''
1.with open 形式不需要调用close()将文件关闭,python会自动关

2.read函数读取整个文件的内容,相比于原始文件,会在末尾多一个空行。——因为read() 到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一个空行。要删除多出来的空行,可在print 语句中使用rstrip() :
'''
with open('pi_digits.txt') as file_object:
    contents = file_object.read()
    print(contents.rstrip())

#逐行读取文件
filename = 'pi_digits.txt'
    with open(filename) as file_object: 
	    for line in file_object:
	        print(line)
#open函数返回的对象只在with代码块内有效
with open(filename) as file_object: 
    lines = file_object.readlines()
for line in lines:
print(line.rstrip())

2)文件路径
1.当文件与当前程序文件在同一目录下,则只需要文件名即可,
2.相对路径:不在同一目录,但在该目录的子目录中,则可以使用相对路径(相对于当前运行的程序所在的目录)
3.绝对路径

#\需要用\\表示
with open('C:\\Users\\ann\\Desktop\\11.txt') as file_object:
    contents=file_object.read()
    print(contents)

3)模式

open(文件路径,模式)

'w’表示以写入的方式打开文件,覆盖写;
---- open返回的文件对象名.write(写入的内容)
'r’表示以读取的方式打开文件;
'a’表示以追加
'r+'表示既可以读取又可以写入
'a+'表示可以读,可以追加

注意:

1)python只能将字符串写入文本文件,将数值数据存储到文本文件中, 必须使用str()函数将其转换为字符串格式
2)write不会在写入的文本末尾添加换行符,因此需要使用空格、制表符、空行等符号来设置输出格式
3)以w的模式写入文件,如果文件不存在,则会自动创建;如果已经存在,则会先清空再写入 如果不想之前的内容被覆盖,可以以追加的方式写入

4)序列化

我们可以将字符串写入本地文件,但是不能是一个对象(列表,字典,自定义类对象等)
TypeError: write() argument must be str, not list,所以需要将对象进行序列化才能写入文件中,Python提供了JSON模块实现数据的序列化与反序列化。
\quad JSON(JavaScriptObjectNotation,JS对象简谱) 是一种轻量级的数据交换库,JSON的本质是字符串

1.序列化:

将要存储的数据,先进行序列化,“去掉” 原本的数据类型,变成字符串,再写入文件

#dump和dumps

json.dumps(a)   #将对象a转化为字符串

1.dumps()import json #先import模块json
with open('1.json','w') as file:
    a=[1,2,5]
    r=json.dumps(a)
    print(r,type(r))      #[1, 2, 5] <class 'str'>
    file.write(r)
2.dump()
#json.dump()接受两个参数:要存储的数据,用于存储数据的文件对象
import json
with open('1.json','w') as file:
    a=[1,2,5]
    json.dump(a,file)

2.反序列化:

从文件中读出数据,进行反序列化,“恢复” 数据该有的类型

#loads,load

1.loads()
import json
with open('1.json') as file:
    content=file.read()
    print(content,'   ',type(content))
    content=json.loads(content)
    print(content,'   ',type(content))

#输出
[1, 2, 5]     <class 'str'>
[1, 2, 5]     <class 'list'>

2.load()
import json
with open('1.json') as file:
    content=json.load(file)
    print(content,'   ',type(content))

#输出
[1, 2, 5]     <class 'list'>

 

<think>好的,用户想学习Python基础语法,并通过示例创建一个健康指数计算器。首先,我需要确定用户的基础水平,可能是个刚开始学习Python的新手,所以需要从基础语法讲起,再逐步引导到项目实践。 根据用户提供的引用内容,特别是引用[2]和[3],用户可能更倾向于使用简单的编辑器而不是复杂的IDE,所以示例代码应该简洁,不需要依赖外部库。同时,引用[5]提到了使用函数和参数,这可以作为健康指数计算器的基础结构。 首先,我应该介绍Python基础语法,包括变量、输入输出、条件判断和函数定义。然后,结合健康指数计算器的需求,比如BMI计算,分步骤讲解如何实现。可能需要包括用户输入身高体重,计算BMI,并根据结果分类健康状态。 还要注意代码规范,引用[1]中的PEP 8,所以示例代码需要符合规范,比如函数命名用小写字母和下划线,适当的空格等。同时,引用[4]的索引知识可能在处理字符串时有用,但在这个示例中可能用不上,但可以留到后续扩展。 用户可能需要清晰的步骤,所以将教程分为基础语法和实战示例两部分。在实战部分,先明确健康指数的定义,比如BMI,然后逐步编码,并解释每一部分的作用。最后,可以给出优化建议,比如增加异常处理,让用户有机会扩展。 需要确保LaTeX格式正确,行内公式用$...$,独立公式用$$...$$。例如,BMI公式是独立公式,应该用$$...$$。同时,生成的相关问题要围绕用户可能遇到的下一步问题,比如如何处理无效输入,增加其他指标等。</think>### Python基础语法健康指数计算器教程 --- #### **一、Python基础语法要点** 1. **输入输出** 使用`input()`获取用户输入,`print()`输出结果: ```python height = float(input("请输入身高(米):")) print("您的身高是:", height) ``` 2. **变量运算** Python支持基本算术运算,如`+`、`-`、`*`、`/`,适合计算健康指数: $$BMI = \frac{体重}{身高^2}$$ ```python weight = 65 # 单位:千克 bmi = weight / (height ** 2) ``` 3. **条件判断** 用`if-elif-else`实现健康状态分类: ```python if bmi < 18.5: status = "偏瘦" elif 18.5 <= bmi < 24: status = "正常" else: status = "超重" ``` 4. **函数定义** 封装计算逻辑为函数(参考引用[5]): ```python def calculate_bmi(height, weight): return weight / (height ** 2) ``` --- #### **二、健康指数计算器实战** **目标**:计算BMI并评估健康状态 **完整代码**: ```python def health_calculator(): print("=== 健康指数计算器 ===") height = float(input("请输入身高(米):")) weight = float(input("请输入体重(千克):")) bmi = weight / (height ** 2) if bmi < 18.5: status = "偏瘦" elif 18.5 <= bmi < 24: status = "正常" elif 24 <= bmi < 28: status = "超重" else: status = "肥胖" print(f"您的BMI是:{bmi:.1f},状态:{status}") health_calculator() ``` **代码说明**: - `input()`获取用户输入并转为浮点数 - BMI公式计算体重身高平方的比值 - `if-elif-else`实现多条件分类 - 输出结果保留1位小数(`:.1f`) --- #### **三、优化建议(PEP 8规范参考引用[1])** 1. **异常处理**:添加`try-except`防止无效输入 ```python try: height = float(input("请输入身高(米):")) except ValueError: print("请输入数字!") ``` 2. **扩展功能**:增加体脂率、基础代谢率等指标 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yun_gao_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值