【Python学习】输入和输出

news2024/11/25 12:49:12

前言

往期文章

【Python学习】列表和元组

【Python学习】字典和集合

【Python学习】条件和循环

在很多时候,你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入,然后打印一些结果。我们可以使用iinput和print语句来完成这些功能。

input

name = input('your name:')
gender = input('you are a boy?(y/n)')

###### 输入 ######
your name:Jack
you are a boy?

welcome_str = 'Welcome to the matrix {prefix} {name}.'
welcome_dic = {
    'prefix': 'Mr.' if gender == 'y' else 'Mrs',
    'name': name
}

print('authorizing...')
print(welcome_str.format(**welcome_dic))

########## 输出 ##########
authorizing...
Welcome to the matrix Mr. Jack.

input函数暂停运行,等待键盘输入,直到按下回车,输入的类型永远时字符串

a = input()
1
b = input()
2

print('a + b = {}'.format(a + b))
########## 输出 ##############
a + b = 12
print('type of a is {}, type of b is {}'.format(type(a), type(b)))
########## 输出 ##############
type of a is <class 'str'>, type of b is <class 'str'>
print('a + b = {}'.format(int(a) + int(b)))
########## 输出 ##############
a + b = 3

文件输入和输出

生产级别的 Python 代码,大部分 I/O 则来自于文件

这里有个in.text

Mr. Johnson had never been up in an aerophane before and he had read a lot about air accidents, so one day when a friend offered to take him for a ride in his own small phane, Mr. Johnson was very worried about accepting. Finally, however, his friend persuaded him that it was very safe, and Mr. Johnson boarded the plane.

His friend started the engine and began to taxi onto the runway of the airport. Mr. Johnson had heard that the most dangerous part of a flight were the take-off and the landing, so he was extremely frightened and closed his eyes.

After a minute or two he opened them again, looked out of the window of the plane, and said to his friend。

"Look at those people down there. They look as small as ants, don't they?"

"Those are ants," answered his friend. "We're still on the ground."

现在

  • 读取文件
  • 去掉所有标点和换行符,将大写变为小写
  • 合并相同的词,统计每个词出现的频率,将词频从大到小排序
  • 将结果按行输出文件out.txt
import re

# 你不用太关心这个函数
def parse(text):
    # 使用正则表达式去除标点符号和换行符
    text = re.sub(r'[^\w ]', '', text)

    # 转为小写
    text = text.lower()
    
    # 生成所有单词的列表
    word_list = text.split(' ')
    
    # 去除空白单词
    word_list = filter(None, word_list)
    
    # 生成单词和词频的字典
    word_cnt = {}
    for word in word_list:
        if word not in word_cnt:
            word_cnt[word] = 0
        word_cnt[word] += 1
    
    # 按照词频排序
    sorted_word_cnt = sorted(word_cnt.items(), key=lambda kv: kv[1], reverse=True)
    
    return sorted_word_cnt

with open('in.txt', 'r') as fin:
    text = fin.read()

word_and_freq = parse(text)

with open('out.txt', 'w') as fout:
    for word, freq in word_and_freq:
        fout.write('{} {}\n'.format(word, freq))

########## 输出 (省略较长的中间结果) ##########



但是有个问题,如果文件非常的大容易造成内存奔溃

这个时候给 read 指定参数 size,还可以通过 readline() 函数,每次读取一行,

json文件读取

import json

params = {
    'symbol': '123456',
    'type': 'limit',
    'price': 123.4,
    'amount': 23
}

params_str = json.dumps(params)

print('after json serialization')
print('type of params_str = {}, params_str = {}'.format(type(params_str), params))

original_params = json.loads(params_str)

print('after json deserialization')
print('type of original_params = {}, original_params = {}'.format(type(original_params), original_params))

########## 输出 ##########

after json serialization
type of params_str = <class 'str'>, params_str = {'symbol': '123456', 'type': 'limit', 'price': 123.4, 'amount': 23}
after json deserialization
type of original_params = <class 'dict'>, original_params = {'symbol': '123456', 'type': 'limit', 'price': 123.4, 'amount': 23}

json.dumps() 这个函数,接受 Python 的基本数据类型 字典,然后转化string (json的字符串)

json.loads() 这个函数,接受一个合法字符串(json),然后 转化为字典

json 的读入

import json

params = {
    'symbol': '123456',
    'type': 'limit',
    'price': 123.4,
    'amount': 23
}

with open('params.json', 'w') as fout:
    params_str = json.dump(params, fout)

with open('params.json', 'r') as fin:
    original_params = json.load(fin)

print('after json deserialization')
print('type of original_params = {}, original_params = {}'.format(type(original_params), original_params))

########## 输出 ##########

after json deserialization
type of original_params = <class 'dict'>, original_params = {'symbol': '123456', 'type': 'limit', 'price': 123.4, 'amount': 23}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/169255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB趣味绘图-内接正六边形旋转

MATLAB趣味绘图-内接正六边形旋转 观察一下内部的正六边形大概在外部的正六边形边的四等分点的位置&#xff0c;通过数学平面几何知识可得边和角度的迭代关系式为&#xff1a; an134an−1θnθn−1arctan⁡36a_n \frac{\sqrt{13}}{4} a_{n-1} \\ \theta_n \theta_{n-1}\arcta…

金融行业数据库场景下,SmartX 超融合表现如何|性能验证与落地实践

在金融行业&#xff0c;数据库是一项至关重要的 IT 基础设施。作为交易和数据的主要载体&#xff0c;数据库往往需要在短时间内处理大量的业务数据&#xff0c;其可靠性、稳定性和性能将直接影响业务系统的运行状态。而在进行数据库基础架构选型时&#xff0c;一些客户对于超融…

C++学习笔记——类和对象

1.面向对象的三大特性&#xff1a;封装、继承、多态 2.对象有其属性和行为 3.具有相同性质的对象&#xff0c;可被抽象为类 1.封装 1.封装是C面向对象三大特性之一 2.封装的意义&#xff1a; &#xff08;1&#xff09;将属性&#xff08;变量&#xff09;和行为&#xff…

python学习 --- 字典基础

目录 一、什么是字典&#xff1f; 1、字典示意图-无序说明 2、字典实现原理 二、字典的创建 1、使用花括号 2、使用内置函数dict() 三、字典常用操作 1、字典中元素的获取 2、key的判断&#xff08;存在与否&#xff09; 3、字典元素的删除 4、字典元素的新增 5、获…

计讯物联智慧水务解决方案:用“智水”捍卫生命之泉

项目背景 水是生命的源泉&#xff0c;是城市的灵魂&#xff0c;是农业的命脉&#xff0c;是工业的基石。2022年以来&#xff0c;基于国家政策的引导、科技革新的驱动与供排水需求增长&#xff0c;智慧水务的发展突飞猛进&#xff0c;从信息化到数字化&#xff0c;再到智能化&a…

若依 ruoyi vue el-switch 列表开关状态显示有误 全部关闭的问题

后台使用int类型传状态status的值但是前端列表展示的开关状态是未开启&#xff0c;实际上&#xff0c;后台传的都是开启的状态结果应该是这样确定后台传的status值 在 el-switch 标签中是否使用了正确的值判断&#xff0c;比如 后台用的是字符串、布尔 或者是 数值类型&#xf…

android判断文件是否存在跳转不同activity

android studio版本&#xff1a;2021.2.1Patch 2例程名称&#xff1a;ActivityJump完成日期&#xff1a;2023.1.17一直在完善一个小东西&#xff0c;也是不断的在学习。之前做的那个桌面日历天气&#xff08;老旧安卓手机发挥余热做桌面时钟摆件使用&#xff09;&#xff0c;有…

java 数列排序

试题 基础练习 数列排序提交此题 评测记录 资源限制内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s问题描述给定一个长度为n的数列&#xff0c;将这个数列按从小到大的顺序排列。1<n<200输入格式…

【渗透测试】信息搜集总结

前言零零散散的发布过很多文章了&#xff0c;但是也没有完整的总结一下&#xff0c;今天就从信息搜集入手&#xff0c;系统的总结一下。一方面可以巩固自己的基础&#xff0c;作为自己的字典随用随查&#xff0c;另一方面希望对大家的学习和工作起到帮助作用。按照这个过程基本…

求两点间的距离-C语言实现

任务描述 已知两点A(x1,y1),B(x2,y2),求其间的距离。 输入 一行四个浮点数,x1,y1,x2,y2 输出 两点间的距离,要求不要输出多余的零。 本关知识 两点间的距离公式 pow函数 在C语言中,提供了用于求x的y次幂的函数,函数原型为: double pow(double x, double y…

啊啊啊小红书爆款标题技巧被我找到了!

我通过平日里对小红书的了解和积累&#xff0c;再加上这一阵子对小红书爆款笔记的研究&#xff0c;终于在这么多笔记当中发现了小红书爆款笔记标题的撰写规律&#xff01; 我们在撰写小红书的时候恨不得篇篇都是爆文&#xff0c;那么今天就来讲一下小红书那些爆款笔记标题的撰写…

75、DiffRF: Rendering-Guided 3D Radiance Field Diffusion

简介 主页&#xff1a;https://sirwyver.github.io/DiffRF/ 对应用于三维亮度场的概率扩散过程进行去噪。在3D监控和体积渲染的指导下&#xff0c;模型能够无条件地合成高保真3D资产(左)。 蒙面补全的新应用(右)&#xff0c;即从不完整的对象中恢复形状和外观的任务(在右上方…

超实用的百度百科人物词条创建攻略分享,纯干货

自媒体时代&#xff0c;人们越来越有IP意识&#xff0c;打造个人IP就是在为自己创造更多价值。 个人IP的打造是一个提升知名度的过程&#xff0c;怎么才能快速提升&#xff1f;创建一个百度百科词条不失为一个好的选择。 现在用户有问题就会在百度上搜索一下&#xff0c;当用户…

java实现模拟调用接口

本文总结如何用fiddler和postman调试接口&#xff0c;并用java模拟调用接口。fiddler用法当页面点击事件后&#xff0c;在fiddler出现一个请求&#xff0c;单击左侧请求&#xff0c;在右侧的raw的tab标签&#xff0c;出现该请求的详细内容。其实一个请求需要两类参数&#xff0…

Linux常用命令——umask命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) umask 用来设置限制新建文件权限的掩码 补充说明 umask命令用来设置限制新建文件权限的掩码。当新文件被创建时&#xff0c;其最初的权限由文件创建掩码决定。用户每次注册进入系统时&#xff0c;umask命令都被…

大数据技术架构(组件)——Hive:流程剖析1

1.1、流程剖析大致流程&#xff1a;1、客户端连接到HS2(HiveServer2&#xff0c;目前大多数通过beeline形式连接&#xff0c;Hive Cli模式相对较重&#xff0c;且直接略过授权访问元数据),建立会话2、提交sql&#xff0c;通过Driver进行编译、解析、优化逻辑计划&#xff0c;生…

OCR识别

阿里云和百度云识别&#xff0c;京东智能识别。 图片识别需求 1&#xff0c;拿到一个文件&#xff0c;2&#xff0c;变成InputStream 3&#xff0c;base64编码将流解析下载&#xff0c; 4 调用方法识别 1.身份证 2&#xff0c;行驶证 3&#xff0c;驾驶证 FileUtils file…

Elasticsearch:通过例子快速入门

Elasticsearch 是业界最流行的开源企业搜索引擎&#xff0c;应用广泛。 在我们的手机里的 App 背后的搜索引擎好多都是 Elasticsearch&#xff0c;比如我们熟知的抖音&#xff0c;滴滴&#xff0c;美团&#xff0c;携程&#xff0c;点评&#xff0c;银行 app&#xff0c;保险&a…

ssh反向代理实现内网穿透【亲测可用】

常用内网穿透方式 1、网卡层映射&#xff0c;包括购买公网ip 推荐指数&#xff1a;&#x1f44d;&#x1f3fb;&#x1f44d;&#x1f3fb;&#x1f44d;&#x1f3fb;&#x1f44d;&#x1f3fb;&#x1f44d;&#x1f3fb;。 缺点&#xff1a;主要申请困难。 2、自己搭建内网…

JavaWeb-HTTPTomcatServlet

JavaWeb-HTTP&Tomcat&Servlet 1&#xff0c;Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在我们日常的生活中&#xff0c;经常会使用浏览器去访问百度、京东、传智官网等这些网站&#xf…