sys.stdin对象——实现标准输入

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

语法参考

sys.stdin是一个标准化输入对象,可以连续输入或读入文件所有内容,不结束,不能直接使用。输入完成后,再对输入数据进行处理,这是sys.stdin的强大之处。sys.stdin.readline()方法和sys.stdin.readlines()方法是经常用到的方法,sys.stdin.readline()方法输入一行,输完成后自动添加’\n’。sys.stdin.readlines()可以连续输入数据,此时可以将输入的数据作为一个整体进行使用。sys.stdin.readline()的基本用法如下:

sys.stdin.readline()

使用sys.stdin.readline()与input()方法都可以实现标准化输入,但两者有以下区别:

l  sys.stdin.readline()方法不能填写提示输入信息的说明文字,但input()方法在括号内可以直接填写输入信息相关的说明文字,如input('请输入您的名字:')。

l  sys.stdin.readline()方法会在输入新后加“\n”换行符,而input()方法在输入完成后不会添加任何内容。要想取消sys.stdin.readline()方法添加的换行符“\n”,可以使用strip('\n') 去除换行符。

下面代码获取用户输入内容的长度,可以比较一下sys.stdin.readline()和input()输入内容的区别。代码如下:

import sys

line1 = sys.stdin.readline()  # 包含换行符"\n"

line2 = sys.stdin.readline().strip('\n')    # 去掉换行符"\n"

line3 = input("")                 # 不包含换行符"\n"

print(len(line1), len(line2), len(line3))

输出结果如下:

要输入多行数据,使用sys.stdin.readlines()方法是最有效的,该方法可以连续输入多行,输入完成时,需要回车到空行,然后按ctrl+D输出结果。应用参见锦囊2。简单实现多行输入的代码如下:

import sys

message = sys.stdin.readlines()

print(message)

用户连续输入多行信息,如图1所示,输入完成后,回车到空行,然后按ctrl+D输出结果如图2所示:

图1  输入多行数据

图2  输出显示

    快用锦囊

锦囊1:常规输入相关内容

sys.stdin.readline()方法不能添加输入提示说明文字,如果要添加提示说明文字,需要使用print()方法进行输入信息提示,代码如下:

import sys

print('请输入您的名字: ')

name = sys.stdin.readline()

print('您输入的名字为: ', name)

程序运行结果如下:

锦囊2:将输入作为整体进行处理

在批量输入数据的时候,经常需要输完数据后在对数据做统一处理,如对数据统一编号、格式处理等,sys.stdin.readlines可以直接将输入的数据作为整体,输入完成后再做数据处理,如将用户输入的姓名前统一加上3位数字编号,输入完成时一定要回车,然后按“ctrl +D”输出程序运行结果。程序代码如下:

import sys

index=0     #  初始化编号

for line in sys.stdin.readlines():            #  按行读取输入的数据

      line = line.strip()                       #  去掉空格和换行符
      index=index+1                             #  编号递进加1
      if line:                                  #  如果行输入不为空
          txt=str(index).zfill(3)+"  "+ line    # 将输入的数据前加上3位编号
      print (txt)

运行程序,输入数据,如图3所示,结束输入时需要先回车到空行,然后按“ctrl +D”输出程序运行结果,如图4所示。

锦囊3:根据两点坐标计算直线的斜率

在勘探、地理探测工作中,有时需要根据输入空间的位置计算两点(x1,y1)(x2,y2)形成直线的斜率,斜率的计算公式为:(y2 - y1) / (x2 - x1),下面编写一个程序,根据用户输入的两点坐标计算直线斜率k。代码如下:

import sys
print('请输入两点的4个坐标值,形式为x1 y1 x2 y2,用空格间隔!!')
while True:
      line = sys.stdin.readline()
      if line == '\n': break
      
x1, y1, x2, y2 = (float(x) for in line.split())
      k = abs(y2 - y1) / abs(x2 - x1)
      print('两点坐标的斜率为:',format(k,'.2f'))

运行程序,输出结果如图5所示。

图5  两点坐标斜率

也可以直接使用sys.stdin对象输入数据,然后循环读取sys.stdin对象的数据。下面使用sys.stdin对象根据两点坐标计算直线的斜率,代码如下:

import sys

print('请输入两点的4个坐标值,形式为x1 y1 x2 y2,用空格间隔!!')

for line in sys.stdin:
      if line == '\n': break
      
x1, y1, x2, y2 = (float(x) for in line.split())
      k = abs(y2 - y1) / abs(x2 - x1)
      print( format(k,'.2f'))

锦囊4:利用sys.stdin读取文件信息

sys.stdin是一个普通文件对象,除了从标准输入读取内容以外,也可以使用sys.stdin调用读取文件信息。如读取文件”gjqh.txt”的所有国家区号,然后调用readlines函数将前3位为“* 8”的区号输出出来,实现代码如下:

import sys
   fileName='gjqh.txt'
   def readfile(file,ord):                     #  定义查询电话区号的函数readfile
       with open(file) as txt:                 #  将国际区号信息文件赋值给变量txt
           sys.stdin = txt                     #  将变量txt的数据赋值给sys.stdin对象
           for line in  sys.stdin.readlines():       #  按行读取sys.stdin对象的数据
                line=line.strip()                   #  去除空格
                if line [0:3]==ord:                 #  按每行数据的前3个字符查询
                    print(line)                     #  输出查询结果
    readfile(fileName,'* 8')   #  调用readfile(),查询国际区号前三个字符是 '* 8'的国家或地区

运行程序,输出效果如图6所示。

图6  读取文件

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

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

相关文章

print()函数——打印输出

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 print()函数是Python编程最常见的函数,常用于输出程序结果,默认输出到屏幕,也可以输出到指定文件。 语法参考 pr…

吉他谱制作软件哪个好 吉他弹唱谱制作软件推荐

在市面上存在着多种吉他谱制作软件,如何选择一款适合自己需求的软件成为了许多人面临的挑战。下面来看看吉他谱制作软件哪个好,吉他弹唱谱制作软件推荐的相关内容。 一、吉他谱制作软件哪个好 吉他谱制作软件在现代音乐创作中扮演着重要角色&#xff0c…

调频信号FM的原理与matlab与FPGA实现

平台:matlab r2021b,vivado2023.1 本文知识内容摘自《软件无线电原理和应用》 调频(FM)是载波的瞬时频率随调制信号成线性变化的一种调制方式,音频调频信号的数学表达式可以写为: Fm频率调制,载波的幅度随着调制波形…

open()函数——打开文件并返回文件对象

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 open()函数用于打开文件,返回一个文件读写对象,然后可以对文件进行相应读写操作。 语法参考 open()函数的语法格式如下&…

【K8s】专题六(2):Kubernetes 稳定性之健康检查

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号! 目录 一、基本介绍 二、工作原理 三、探针类型 1、存活探针(LivenessProbe&#x…

docker入门配置

1、创建配置镜像 由于国内docker连接外网速度慢,采用代理 vi /etc/docker/daemon.json添加以下内容 {"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com","https://dockerproxy.com","https://hub-mirror.c.163.co…

SOA和ESB介绍

SOA(面向服务的架构) 面向服务的架构(Service-Oriented Architecture,SOA)是一种设计理念,用于构建松耦合的、可互操作的、模块化的服务。在SOA架构中,应用程序被划分为一系列的服务&#xff0c…

电脑屏幕花屏怎么办?5个方法解决问题!

“我刚刚打开电脑就发现我的电脑屏幕出现了花屏的情况。这让我很困惑,我应该怎么解决这个问题呢?求帮助。” 在这个数字时代的浪潮中,电脑早已成为我们生活中不可或缺的一部分。然而,当你正沉浸在紧张的游戏对战中,或是…

谷歌上搞下来的,无需付费,可以收藏!

在数字化时代,我们越来越依赖于智能设备来获取信息和知识。中国智谋App正是这样一款应用,它将中国古代的智慧与谋略书籍带入了我们的移动设备,让我们能够随时随地学习和领悟。而且提供文言文的原文和译文。 软件下载方式:谷歌上搞…

39.右键弹出菜单管理游戏列表

上一个内容:38.控制功能实现 以 ​​​​​​​ 38.控制功能实现 它的代码为基础进行修改 效果图: 点击设置之后的样子 点击删除 点击删除之后的样子 实现步骤: 首先添加一个菜单资源,右击项目资源选择下图红框 然后选择Menu 然…

【C语言】字符/字符串+内存函数

目录 Ⅰ、字符函数和字符串函数 1 .strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 11.字符函数 12. 字符转换函数 Ⅱ、内存函数 1 .memcpy 2.memmove 3.memcmp Ⅰ、字符函数和字符串函数 1 .strlen 函数原型:…

《计算机英语》 Unit 6 Internet 互联网

Section A Internet 互联网 The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite (TCP/IP) to link several billion devices worldwide. 互联网是一个全球性的互连计算机网络系统,使用标准的互联…

苹果CMS-V10 搭建教程踩坑,跳过部分验证

我突发奇想,想要安装一个CMS 苹果CMS搭建教程-CSDN博客 然后就有了下面的问题 结论是zip相关依赖未安装, 通过 apt install php-zip, 重新打开安装页面,同样如此 最后依据某个网站提示,修改 "\\192.168.1.200\root\var\www\html\maccms\application\install\control…

多家国产大模型提供OpenAI API服务替代方案,谷歌将推出明星网红AI聊天机器人

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 1、OpenAI终止对中国提供服务 6月25日凌晨,多个用户收到OpenAI的推送邮件,信中称,自今年7月9日起,将开始阻止来自非支持国家和地区的API(应…

3.任务的创建与删除

1.什么是任务? 任务可以理解为进程/线程,创建一个任务,就会在内存开辟一个空间。 任务通常都含有while(1)死循环 2.任务创建与删除相关的函数 3.CUBEMAX相关配置 编辑一个led1闪烁的任务

小程序使用echarts和echarts配置项总结(全网最简单详细)

文章目录 概要小程序中使用echarts1. ec-canvas2. 下载项目3. 去echarts官网定制:4.点击下载5.引入使用 echarts的option配置知识点归纳整理(还在更新):小结 概要 小程序中使用echarts(简单详细) 小程序中…

解密城市酷选为何异军突起!打造消费新潮流的排队免单模式

一、城市酷选平台简介 在数字化浪潮席卷全球的今天,城市酷选作为一个前沿的消费平台,凭借其独特的排队免单模式,成功吸引了众多消费者和商家的目光。该平台不仅整合了线上线下的资源,更通过数字化手段,为消费者提供了…

C3P0数据库连接池

目录 一:连接池介绍 1.1连接池解决的问题 2.常用的数据库连接池 二:c3p0介绍 2.1C3P0介绍: 2.2C3P0快速入门 1.常用参数说明 2.API介绍 3.使用步骤 1.导入jar包c3p0-0.9.1.2.jar 2.编写c3p0-config.xml配置文件,配置对…

node 实现导出, 在导出excel中包含图片(附件)

如果想查看 node mySql 实现数据的导入导出,以及导入批量插入的sql语句,连接如下 node mySql 实现数据的导入导出,以及导入批量插入的sql语句-CSDN博客https://blog.csdn.net/snows_l/article/details/139998373 一、效果如图: 二…

【Linux详解】进程的状态 | 运行 阻塞 挂起 | 僵尸和孤儿状态

目录 操作系统中 运行状态 阻塞状态 进程状态转换 Linux系统中 查看进程状态 深度睡眠状态 T 暂停状态 Z 僵尸状态 孤儿状态 文章手稿 xmind: 引言 介绍系统中的进程状态及其管理方式。将通过结合操作系统原理和实际代码示例,详细说明进程的各种状态、转换…