Go_输入、输出、随机数

输出的几种方式:

fmt.Print:属于标准输出流,一般使用它来进行屏幕输出,但它不能换行

fmt.Printf:可以格式化输出,输出不换行

fmt.Println:输出后换行

fmt.Sprint:返回一个格式化的字符串

Println()/Print():标准错误出,控制台会以红色字体输出

	a, b, c := 1, 2, 3
	fmt.Print(a, b, c, "\n")  // \n代表换行
	fmt.Println(a, b, c)
	fmt.Printf("a = %d , b = %d , c = %d ", a, b, c)

Scanf():需要指定接收的类型

	fmt.Scanf("数据类型",&变量)

演示:

func main() {
	var age int
	fmt.Println("请输入您的年龄")
	fmt.Scanf("%d", &age)  // &取地址符
	fmt.Println("age = ", age)
}

键盘录入:

Scan():不需要指定接收的类型

fmt.Scan(&变量)

演示:

func main() {
	var (
		name string
		age  byte
	)
	fmt.Println("请输入您的姓名")
	fmt.Scan(&name)
	fmt.Println("请输入您的年龄")
	fmt.Scan(&age)
	fmt.Println("您的年龄是:", age, "\n", "您的姓名是:", name)
}

键盘输入数字后,计算圆的面积和周长

func main() {
	// 定义π
	const π = 3.14

	// 键盘录入并使用变量接收
	fmt.Println("请输入半径")
	var r float64
	fmt.Scan(&r)

	// 计算面积与周长
	area := π * r * r
	p := 2 * π * r
	fmt.Printf("面积是%.3f\n", area)
	fmt.Printf("周长是%.3f\n", p)
}

随机数:

rand.Intn(n int) 是 Go 语言 math/rand 包中的函数,它返回一个0~n范围内的伪随机整数。其中,n 表示返回的随机整数的上限(不包含 n)。

在Go语言中,生成随机数的算法是伪随机数算法,也就是说它不是真正意义上的随机数。伪随机数是通过一个确定的算法生成的,如果不做特殊处理,每次生成的数都是一样的。

func main() {
	rand.Seed(10) // 设置随机数种子为固定值42
	for i := 0; i < 5; i++ {
		fmt.Println(rand.Intn(100))
	}
}

输出:不管运行几次随机数都是一样的

54
48
67
39
28

为了生成不同的随机数序列,需要设置一个种子(Seed),Seed可以是任意数值,但需要保证每次使用的Seed都不同,通常可以使用时间戳作为Seed。

func main() {
	rand.Seed(time.Now().UnixNano())
	for i := 0; i < 5; i++ {
		fmt.Println(rand.Intn(100))
	}
}

crypto/rand包实现了用于加解密的更安全的随机数生成器。

func main() {
	// 生成一个包含10个字节的切片
	b := make([]byte, 10)
	if _, err := rand.Read(b); err != nil {
		panic(err)
	}
	fmt.Println(b)
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itzhuzhu.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值