标准输入输出格式和练习题

Java多行输入解析

Go

单行输入

单行输入

每行输入三个值

        Scanner input = new Scanner(System.in);
        while(input.hasNextInt()){  //用input.hasNext()也行
            int a = input.nextInt();
            int b = input.nextInt();
            int s = input.nextInt();
            }

每次输入不固定长度的一行整数

    public static void main(String[] args) {
        Solution a = new Solution();

        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            String nextLine = sc.nextLine();
            String[] split = nextLine.split(" ");
            int [] b=Arrays.asList(split).stream().mapToInt(Integer::parseInt).toArray();
            System.out.println(a.candy(b));
        }
    }
}

多行输入

例子12
	1 2 1
	2 2 1
	Scanner cin=new Scanner(System.in);
    int T,c;
    long n,m;
    while (cin.hasNext()) {
        T=cin.nextInt();
        for (int i = 0; i < T; i++) {
            n=cin.nextInt();
            m=cin.nextInt();
            c=cin.nextInt();
            System.out.println((n/2+m/2)<=c?"Yes":"No");
        }
    }
例子24 3
	1 1 2 3
	Scanner scanner = new Scanner(System.in);
	int n = scanner.nextInt(), m = scanner.nextInt();
	int[] sds = new int[n];
	for (int i = 0; i < sds.length; i++) {
		sds[i] = scanner.nextInt();
	}

牛客python输入输出

外循环加个While 1

每次输入一个数字

n = int(input())#输入只是一个数字

输入数字n和n行

'多行输入'
res = []
n = int(input())#行数
for _ in range(n):
    s = input()
    if s!='':
        temp = [j for j in s.split()] #str输入
        # temp = [int(j) for j in s.split()] #int输入
        res.append(temp[0])
    else:
        break
print(res)


在这里插入图片描述
输出方式

for i in res:
    print(F(i)) #每行只输出一个
    # print(F(i), end=' ') #全在同一行内输出,用空格隔开

多行输入,行数未知

'多行输入,行数未知'
res = []
while True:
    try:
        s = input()
        # res.append(list(map(int, s.split(' '))))
        res.append(list(map(str, s.split(' '))))
    except:
        break
info = list(map(int,input().split(' ')))
a = []
b = []
for i in range(info[0]):
    a.append(input().split(' '))
for j in range(info[1]):
    b.append(input().split(' '))
print(a)
print(b)

https://blog.csdn.net/qq_39938666/article/details/101004633

赛码网有意思的题目

在这里插入图片描述

// 脑筋急转弯题hhh 走的路不小于起点到终点的纵横距离,并且多走的路是2的倍数。
// 乍看还以为是dfs的题呢~!/-\!
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while(input.hasNextInt()){
            int a = input.nextInt();
            int b = input.nextInt();
            int s = input.nextInt();
            int c = s - Math.abs(a) - Math.abs(b);
            if(c<0 || c%2 != 0){
                System.out.println("No");;
            }else{
                System.out.println("Yes");
            }
        }
    }
}
### 关于输入输出重定向的编程练习 #### 练习一:文件读取与写入 编写一段 Python 代码来实现从标准输入读取多行字符串并将其保存到指定文件中。当遇到特定结束标记(如 `EOF` 或者其他自定义字符序列)时停止读取。 ```python def save_to_file(filename): lines = [] print("Enter text (or type EOF to finish):") while True: try: line = input() if line.strip().upper() == "EOF": break lines.append(line + "\n") except EOFError: break with open(filename, 'w') as f: f.writelines(lines) save_to_file('output.txt') ``` 这段程序会持续接收用户的键盘输入直到检测到预设终止信号,并将这些数据存储在一个名为 `output.txt` 的文本文件里[^1]。 #### 练习二:命令行工具模拟器 创建一个简单的 shell 脚本或 Python 程序,该程序能够接受来自另一个进程的标准输出作为其自身的标准输入,并处理后再通过管道传递给下一个命令执行。这可以用来测试如何安全地管理不受信任的数据流而不造成安全隐患[^2]。 例如,在 Linux 下可以通过如下方式构建这样的链路: ```bash echo "Hello world!" | python3 my_filter.py | grep -i hello ``` 其中 `my_filter.py` 是一个负责转换大小写的简单过滤脚本;而最后一步则是利用 `grep` 查找含有关键字的内容。 为了防止潜在的安全风险,应当遵循最佳实践建议,比如避免直接使用用户控制的信息构造服务端重定向逻辑。 #### 练习三:HTTP 请求方法变换 设计一个小项目,它能接收 HTTP POST 请求并将请求体中的参数重新编码成 URL 查询串形式发送新的 GET 请求出去。此过程涉及到对原始表单字段进行适当转义以确保最终形成的 URI 合法有效[^3]。 下面给出了一种可能的技术方案框架: ```python from urllib.parse import urlencode import requests data = {'key': 'value', 'another_key': 'another value'} url_encoded_data = urlencode(data) new_url = f"http://example.com/path?{url_encoded_data}" response = requests.get(new_url) print(response.text) ``` 上述片段展示了怎样把字典对象里的键值对组合成为适合附加在址后面的查询部分,并发起相应的络访问操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值