【ACM模式】输入输出

前言:对于这种不需要脑子的输入输出代码,还是要熟练。

OJ在线编程常见输入输出练习场

1. 数值输入

# 整数
a = int(input())
# 多个整数
n, m = map(int, input().strip().split())
n, m = map(int, input().split())
n, m = map(int, input().split(" "))
# 数值列表
l = list(map(int, input().split()))

多行输入模式

# 有终止标识
# if 终止标识:break
# https://ac.nowcoder.com/acm/contest/5652/C
while True:
    a, b = map(int, input().strip().split())
    if a==0 and b==0:
        break
    print(a+b)

# 无终止标识
# try: except: 
# https://ac.nowcoder.com/acm/contest/5652/A
while True:
    try:
        a, b = map(int, input().strip().split())
        print(a + b)
    except:
        break

# 有循环次数
# for _ in range(n)
# https://ac.nowcoder.com/acm/contest/5652/B
t = int(input())
for _ in range(t):
    a, b = map(int,input().strip().split())
    print(a+b)

数值输出

浮点数指定位数输出(四舍五入)

num = 1.2345

# %f 方法
print('%.4f' % num)
print('%.3f' % num)
print('%.2f' % num)

# format函数
print(format(num, '.2f'))
print(format(num, '.3f'))
print(format(num, '.4f'))
# 

字符串输入输出

input 函数本身获取的值就是字符串,无需转化

# https://ac.nowcoder.com/acm/contest/5652/H
n = int(input())
l=list(input().split())
l.sort()
print(" ".join(l))
# https://ac.nowcoder.com/acm/contest/5652/J
while True:
    try:
        l=list(input().split(','))
        l.sort()
        print(",".join(l))
    except:
        break
### 大厂ACM模式输入输出规范 在大厂ACM竞赛或编程测试环境中,遵循严格的输入输出格式对于程序的正确性和评分至关重要。通常情况下,输入数据会通过标准输入流提供给程序处理,并且期望程序按照特定格式将结果打印到标准输出。 #### 输入规范 输入部分一般由多组测试案例组成,每组之间可能有分隔符区分。具体来说: - 测试案例数量N会在文件的第一行给出。 - 接下来的每一行代表一组独立的数据集,用于单独执行算法逻辑验证。 - 数据项间常用空格、逗号或其他指定符号作为间隔标志[^1]。 例如,在字符串操作题目中,可能会遇到如下形式的输入描述: ```text 2 hello world abc xyz ``` 这里表示存在两组待处理的文字串信息。 #### 输出规范 针对上述结构化的输入设计相应的输出方案时需注意以下几点原则: - 对于每一个实例都应生成对应的解答并依次排列显示; - 如果一个问题涉及多个子问题,则要确保各部分内容清晰可辨; - 结果呈现方式应当严格遵照题干要求,比如保留几位小数点后的精度等特殊指示; 下面展示了一个简单的例子,假设任务是要把接收到的小写字母转变为大写形式返回: ```python import sys def convert_to_uppercase(input_string): result = "" for char in input_string: if 'a' <= char <= 'z': converted_char = chr(ord(char) + ord('A') - ord('a')) result += converted_char else: result += char return result if __name__ == "__main__": lines = [] for line in sys.stdin: stripped_line = line.strip() if not stripped_line: break lines.append(stripped_line) test_cases_count = int(lines[0]) for i in range(1, test_cases_count + 1): output = convert_to_uppercase(lines[i]) print(output) ``` 此代码片段展示了如何读取来自`stdin`的标准输入,并逐一对每个测试用例应用大小写的转换函数,最后按顺序写出至`stdout`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值