美文网首页
python3读取输入(input和sys)

python3读取输入(input和sys)

作者: 0error_ | 来源:发表于2020-03-22 18:06 被阅读0次

我就不信还记不住╰(°▽°)╯

不定期更

需要用到的内容:

参考博客:https://www.jb51.net/article/169914.htm
参考博客:https://www.cnblogs.com/yyxayz/p/4034299.html

split()

切分用的函数是split(),如果为空,就是按空格分割(很多个空格也会当成1个空格)。
如果按照逗号分隔,split(",")

strip()

s为字符串,rm为要删除的字符序列. 只能删除开头或是结尾的字符或是字符串。不能删除中间的字符或是字符串。
s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符

sys.stdin.readline()

(记得要import sys)
sys.stdin.readline()可以实现标准输入,需要调用sys库,sys.stdin是一个标准化输入的方法,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换。
注意:
① 默认输入的是字符串(注意strip('\n')表示以\n分隔,否则输出是“字符串+\n”的形式 )
② 如果是多个输入,strip()默认是以空格分隔,返回的是一个包含多个字符串的list
③ 如果要强制转换成int等类型,可以调用map()函数。

sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n',input()会把‘\n'忽略.

---------------下面进入正题----先读一行--------------------

读取数字

1. 读取一行里的多个数字,用空格隔开,回车结束,用列表保存

参考博客:https://blog.csdn.net/qq_14841239/article/details/82903445

    list1 = list(map(int, input().split()))
    print (list1)  #[12, 43, 27, 94, 73]
2. 读取一行里的多个数字,用空格隔开,回车结束,分别保存

但是好像需要提前知道数字的个数?
参考博客:https://blog.csdn.net/Hackeryuan/article/details/103714783

    a,b =map(int, input().split())
    print ('a : %d, b : %d' %(a,b)) #a : 143, b : 888

用sys:

    a, b = map(int, sys.stdin.readline().split())

读取字符串

1. 读取一行里的多个字符串,用空格隔开,回车结束,用列表保存
    s = input().split() #['gsg', 'ewg', '83gj', '924'] (瞎打的)

用sys:

    list1 = sys.stdin.readline().split()
2. 读取一行里的多个字符串,用空格隔开,回车结束,分别保存

参考博客:https://blog.csdn.net/weixin_30698297/article/details/97068650?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

    s1,s2 = input().split()
    print ('s1 : %s, s2 : %s' %(s1,s2)) #s1 : tt0s, s2 : 4ge

用sys:
https://blog.csdn.net/demon24/article/details/8502565

    str1, str2 = map(str, sys.stdin.readline().split())
    print ('str1 : %s, str2 : %s' %(str1,str2)) #str1 : ghaf74, str2 : 09fr
    print ('str1的长度 : %d, str2的长度 : %d' %(len(str1),len(str2))) #str1的长度 : 6, str2的长度 : 4

----------------------试试读多行---------------------------

  • 最简单的是input(),注意如果需要int类型,需要强转 int(intput())
  • 如何判断输入结束了:按下Enter,然后按下ctrl+d

读取字符串

1. 不指定行数,读取多行字符串,每行里的字符串以空格隔开,存入一维/二维list

来源博客:https://blog.csdn.net/qq_26884501/article/details/89194211

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

extend出来的是一维list:


image.png

append出来的是二维list:


image.png
2. 不指定行数,读取多行数字,每行里的数字以空格隔开,存入二维list

(其实就是把上面代码改了改,转成了int)

import sys
try:
    mx = []
    while True:
        m = sys.stdin.readline().strip()
        #若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。
        if m == '':
            break
        m = list(map(int, m.split())) #改的是这里!
        mx.append(m)
    print(mx)
    print(mx[0][0])
    print(type(mx[0][0])) #看看是不是int
except:
    pass

append出来的是二维list:


image.png

相关文章

网友评论

      本文标题:python3读取输入(input和sys)

      本文链接:https://www.haomeiwen.com/subject/oydvyhtx.html