Yiner

Mar 03, 2022

Python ACM模式输入输出

 
 
 
 
💡
小结:
  • Python3的输入input()是字符串,需要自己转化为对应的数据类型。
  • strip()去掉左右两端的空白符,返回str
  • split()把字符串按空白符拆开,返回[str]
  • map(func, iterable)把list里面的值映射到指定类型,返回[type]
  • 若想写入口函数:if __name__ == '__main__':
 
 

参考资料

 
 

各种输入情况

  1. 有多组输入数据,但没有具体的告诉你有多少组,只是让你对应每组输入
    1. while True: a,b = map(int, input().strip().split())
      while True: try: a, b = map(int, input().split()) print(a+b) except: break
  1. 输入一个整数,告诉我们接下来有多少组数据,然后再输入每组数据的具体值
    1. tcase = int(input().strip()) for case in range(tcase): a,b = map(int, input().strip().split())
  1. 有多组输入数据,没有具体的告诉你有多少组,但是题目告诉你遇见什么结束
    1. while True: a, b = map(int, input().strip().split()) if a==0 and b==0: break
  1. 输入一个整数,告诉我们接下来有多少组数据,然后再输入每组数据的具体值,同时告诉你每组输入遇见什么结束
    1. tcase = int(input().strip()) for case in range(tcase): a, b = map(int, input().strip().split()) if a == 0 and b == 0: break
  1. 输入一个整数,告诉我们有多少行,再输入每一行。对于每一行的输入,有划分为第一个数和其他的数,第一个数代表那一组数据一共有多少输入。
    1. tcase = int(input().strip()) for case in range(tcase): data = map(int, input().strip().split()) n, array = data[0], data[1:] sum = 0 for i in range(n): sum += array[i]
      n = int(input()) for _ in range(n): l = list(map(int, input().split())) print(sum(l[1:]))
 
 

关于输出

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

参数

  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file -- 要写入的文件对象。
  • flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。
💡
可以指定end=' '来在同一行输出多个元素。
 

例子

# 利用等差数列求和的公式 if __name__ == '__main__': N, L = map(int, input().split()) begin = 0 find = False for i in range(L, 101): rest = (2 * N - i*(i-1)) % (2*i) if rest == 0: begin = (2 * N - i*(i-1)) // (2*i) for num in range(begin, begin+i-1): print(num, end=' ') print(begin+i-1) find = True break if not find: print('No')
 

Copyright © 2024 Yiner

logo