Python
input
读取一行输入
# strip() 将字符串首尾空格和换行符等移除
# 通过 map 将所有的输入强制转为 int 类型
print("input:")
line = list(map(int, input().strip().split()))
print("output:")
print("line:", line)
print("len:", len(line))
执行示例:
> python .\input.py
input:
1 2 3 4 8 10 29
output:
line: [1, 2, 3, 4, 8, 10, 29]
len: 7
读取多行输入(指定行数)
# 假设 n 表示一个矩阵的行数,m 表示一个矩阵的列数
print("input:")
n, m = map(int, input().strip().split())
lis = []
for _ in range(n):
tmp = list(map(int, input().split()))
lis.append(tmp)
print("output:")
print("n:", n, " m:", m)
print(lis)
执行示例:
> python .\input.py
input:
2 3
1 2 3 4
5 6 7 8
output:
n: 2 m: 3
[[1, 2, 3, 4], [5, 6, 7, 8]]
读取多行输入(不指定行数)
print("input:")
lis = []
while True:
line = input().strip()
if line == "":
break
lines = list(map(int, line.split()))
lis.append(lines)
print("output:")
print(lis)
> python .\input.py
input:
1 3 4 3
7 8 9 10
output:
[[1, 3, 4, 3], [7, 8, 9, 10]]
sys.stdin.readline()
如果使用该语句,默认是读取的字符串+\n
读取一行输入
import sys
print("input:")
line = list(map(int, sys.stdin.readline().strip().split()))
print("output:")
print("len:", len(line))
print("line:", line)
执行示例:
> python .\input.py
input:
1 2 3 4 5 6 7
output:
len: 7
line: [1, 2, 3, 4, 5, 6, 7]
读取多行(指定行数)
import sys
print("input:")
n, m = map(int, sys.stdin.readline().strip().split())
lis = []
for _ in range(n):
line = sys.stdin.readline().strip()
if line == "":
break
lines = list(map(int, line.split()))
lis.append(lines)
print("output:")
print("n:", n, " m:", m)
print("line:", lis)
执行示例:
> python .\input.py
input:
2 4
1 2 3 4
5 6 7 8
output:
n: 2 m: 4
line: [[1, 2, 3, 4], [5, 6, 7, 8]]
读取多行(不指定行数)
import sys
print("input:")
lis = []
while True:
line = sys.stdin.readline().strip()
if line == "":
break
lines = list(map(int, line.split()))
lis.append(lines)
print("output:")
print("len:", len(lis))
print("line:", lis)
执行示例:
> python .\input.py
input:
1 2 3 4
5 6 7 8
output:
len: 2
line: [[1, 2, 3, 4], [5, 6, 7, 8]]
sys.stdin
读取多行
import sys
for line in sys.stdin:
line = line.strip()
if line == "":
break
a, b = map(int, line.split())
print(a + b)
https://ac.nowcoder.com/acm/contest/5657/A
输出
import sys
sys.stdout.write("hello world")
执行示例:
> python .\input.py
hello world
格式化输出
使用%
输出不同进制
%o
:oct八进制%d
:dec十进制%x
:hex十六进制
使用%
保留小数
%f
:默认保留小数点后六位有效数字%.3f
:保留三位小数位
%e
:保留小数点后六位有效数字,科学计数法%g
:在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
尽量不使用round()
取整,round()
函数只有一个参数,不指定位数的时候,返回一个整数,而且是最靠近的整数,类似于四舍五入,当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的情况时,如果要取舍的位数前的小数是奇数,则直接舍弃,如果是偶数则向上取舍。
使用%s
对字符串进行格式化输出
%10s
:右对齐,占位符10位%-10s
:左对齐,占位符10位%.2s
:截取两位字符%10.2s
:左对齐,占位符10位,同时截取两位字符
实例:
s = "Hello world"
print("字符串:%s" % s)
print("右对齐:%20s" % s)
print("左对齐:%-20s" % s)
print("截取:%.2s" % s)
输出:
t> python .\input.py
字符串:Hello world
右对齐: Hello world
左对齐:Hello world
截取:He
Golang
fmt.Fscan
读取一个输入
整数
import (
"fmt"
"os"
)
func main() {
var number int
fmt.Print("输入一个整数:")
_, err := fmt.Fscan(os.Stdin, &number)
if err != nil {
fmt.Println(err)
}
fmt.Println("输出:", number)
}
执行示例:
go run .\main.go
输入一个整数:99
输出: 99
浮点数
func main() {
var number float64
fmt.Print("输入一个浮点数:")
_, err := fmt.Fscan(os.Stdin, &number)
if err != nil {
fmt.Println(err)
}
fmt.Println("输出:", number)
}
执行示例:
go run .\main.go
输入一个浮点数:99.9
输出: 99.9
字符串
func main() {
var str string
fmt.Print("输入一个字符串:")
_, err := fmt.Fscan(os.Stdin, &str)
if err != nil {
fmt.Println(err)
}
fmt.Println("输出:", str)
}
执行示例:
go run .\main.go
输入一个字符串:hello
输出: hello
fmt.Scan
读取一个输入
整数
func main() {
var number int
fmt.Print("输入一个整数:")
_, err := fmt.Scan(&number)
if err != nil {
fmt.Println(err)
}
fmt.Println("输出:", number)
}
浮点数
func main() {
var number float64
fmt.Print("输入一个浮点数:")
_, err := fmt.Scan(&number)
if err != nil {
fmt.Println(err)
}
fmt.Println("输出:", number)
}
字符串
func main() {
var str string
fmt.Print("输入一个浮点数:")
_, err := fmt.Scan(&str)
if err != nil {
fmt.Println(err)
}
fmt.Println("输出:", str)
}
fmt.Scanln
读取一行输入
func main() {
var (
m, n int
)
fmt.Print("请输入两个整数:")
fmt.Scanln(&m, &n)
fmt.Println("m:", m, "n:", n)
}
执行示例:
go run .\main.go
请输入两个整数:2 4
m: 2 n: 4
bufio.NewReader
读取一行字符串
func main() {
fmt.Print("请输入一个字符串:")
reader := bufio.NewReader(os.Stdin)
bytes, _, _ := reader.ReadLine()
str := string(bytes)
fmt.Println("输出:", str)
}
执行示例:
go run .\main.go
请输入一个字符串:hello world
输出: hello world
读取多行
https://ac.nowcoder.com/acm/contest/5657#question
func main() {
reader := bufio.NewReader(os.Stdin)
for {
bytes, _, _ := reader.ReadLine()
str := string(bytes)
if str == "" {
break
}
arr := strings.Split(str, " ")
a, _ := strconv.Atoi(arr[0])
b, _ := strconv.Atoi(arr[1])
fmt.Println(a, b)
}
}
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
for {
bytes, _, _ := reader.ReadLine()
str := string(bytes)
if str == "" {
break
}
// a, _ := strconv.Atoi(arr[0])
// b, _ := strconv.Atoi(arr[1])
// fmt.Println(a, b)
var a, b int
fmt.Sscanln(str, &a, &b)
fmt.Println(a, b)
}
}