python 笔试输入:sys.stdin.readline和input

①:输入一行数据并输

出两种方法

# 输入一行数据并输出
import sys

# 方法一:
str1 = input()
print('input 输入:',str1,'len=',len(str1))
print('循环遍历输入得到输入的每个字符的ascii码如下:')
for i in str1:
    print(ord(i))

# 方法二:
str2 = sys.stdin.readline()
print('sys.stdin().readline() 输入:',str2,'len=',len(str2))
print('循环遍历输入得到输入的每个字符的ascii码如下:')
for i in str2:
    print(ord(i))
print('换行的ascii码是',ord('\n'))

测试代码结果:


输入一行数据并输出

下面的代码也可以说明sys.stdin.readline和input 两者的区别

import sys
c = [x for x in sys.stdin.readline()]
print(c)
d = [x for x in input()]
print(d)
image.png

①结论

如果上面代码想要固定输入数字 只需将input() 和sys.stdin.readline() 加上int()的限制
可知上面两种方式的输入,sys.stdin.readline()方法会获取每行数据的最后的换行符

②:输入一行数据 以空格分隔 返回list

print('input 输入:')
list1 = [x for x in input().split()]
print(list1)

print('sys.stdin.readline() 输入:')
import sys
list2 = [x for x in sys.stdin.readline().split()]
print(list2)

结果


输入一行数据 以空格分隔 返回list

②:指定行数 输入多行数据 返回二维list

print('请输入数据的行数N:')
N = int(input())
print('N=',N)
print('input 输入:')
list1 = [[x for x in input().split()] for y in range(N)]
print(list1)

print('sys.stdin.readline() 输入:')
import sys
list2 = [[x for x in sys.stdin.readline().split()] for y in range(N)]
print(list2)
image.png

下面的代码是输出list里面的数据是整数

print('请输入数据的行数N:')
N = int(input())
print('N=',N)
print('input 输入:')
list1 = [[int(x) for x in input().split()] for y in range(N)]
print(list1)

print('sys.stdin.readline() 输入:')
import sys
list2 = [[int(x) for x in sys.stdin.readline().split()] for y in range(N)]
print(list2)

image.png

③:不指定行数 输入多行数据 返回二维list

不指定输入的行数,但是必须以最后下一行只输入空格或者什么都不输入为结束

import sys
try:
    ssn = []
    while True:
        sn = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if sn == '':
            break
        sn = list(sn.split())
        ssn.append(sn)
    print(ssn)
except:
    pass

结果:


image.png
import sys
try:
    ssn = []
    while True:
        sn = input().strip()
        # sn = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if sn == '':
            break
        sn = list(sn.split())
        ssn.append(sn)
    print(ssn)
except:
    pass

结果:


image.png

④:不指定行数 但是每输入一行就处理一行 持续等待输入

import sys
try:
    while True:
        sn = input().strip()
        # sn = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if sn == '':
            break
        sn = list(sn.split())
        print('此行输入为:',sn)
except:
    pass

结果:


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,669评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,277评论 0 10
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,754评论 1 118
  • 1.缘由: 之前项目组件化的时候,自己负责的模块需要拆出来单独成一个module,因为用到的第三方的东西害怕包名不...
    Merlin_720阅读 2,728评论 0 5
  • 认识你很久了,三年,不长不短。可有交集不过是从去年的12月开始。很突然很意外,从未想过和你能成为朋友,一直不过是同...
    王小小的茶馆阅读 219评论 0 0

友情链接更多精彩内容