Python输入输出问题

By | 2017年9月2日

目录:

  1. 控制台输入

 

1.控制台输入

1.1 输入一行

str = raw_input()
print str

结果如下:

微信截图_20170902210916

1.2 输入多行

stopline = ''
for line in iter(raw_input, stopline):
    print line

这种情况是输入一行就输出一行,结果如下:

微信截图_20170902211112

如果想将输入给参数赋值并进行一定的处理,最后输出结果。

1.2.1 输入行数确定

输入行数确定时,直接每一行是什么意思,就赋给哪个参数。

task_num = raw_input('')
length_list = list(raw_input('').split(' '))

print task_num
print length_list

微信截图_20170902212656

1.2.2 输入行数不定(stopline)

用 stopline 来确定什么时候结束输入。

line_num = 0
sample_s_num = 0
sample_k_num = 0
sample_s_matrix = []
sample_k_matrix = []
stopline = ''
for line in iter(raw_input, stopline):
    line_num += 1
    list_input = []
    if line_num == 1:
        sample_s_num = int(line.strip())
    if 1 < line_num <= sample_s_num+1:
        list_input = line.split(' ')
        sample_s_matrix.append(list_input)
    if line_num == sample_s_num+2:
        sample_k_num = int(line.strip())
    if sample_s_num+2 < line_num <= sample_s_num+2+sample_k_num:
        list_input = line.split(' ')
        sample_k_matrix.append(list_input)

print sample_s_num, sample_k_num
print sample_s_matrix
print sample_k_matrix

结果如下:

微信截图_20170902213124

1.2.3 输入行数不定(根据第一行数字确定输入行数)

# -*- coding: utf-8 -*
import sys

if __name__ == "__main__":

    n = int(sys.stdin.readline().strip())    # 读取第一行的n
    ans = 0
    for i in range(n):      
        line = sys.stdin.readline().strip()   # 读取接下来的每一行       
        values = map(int, line.split())   # 把每一行的数字分隔后转化成int列表
        for v in values:
            ans += v
    print ans

实现的功能如下:

微信图片_20170913213505

如果第一行有多个数:

5 2
A B C
C F *
B D E
D G *
E H I

import sys

if __name__ == "__main__":
    num_list = sys.stdin.readline().strip().split(' ')
    # print num_list[0]
    row_num = int(num_list[0])    # 第一行第一个数
    n = int(num_list[1])                 # 第一行第二个数
    kehu_list = []

    for i in range(row_num):         # 读接下来的每一行
        line = sys.stdin.readline().strip()
        values = map(str, line.split())
        values = [each for each in values if each != '*']
        if len(values) >= n+1:
            kehu_list.append(values[0])

    kehu_list.sort()
    if len(kehu_list) > 0:
        for each_kehu in kehu_list:
            print each_kehu,
    else:
        print 'None'

 

 

参考文献:

  1. 百度知道:python要支持多行字符串输入,要怎么写?

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注