# strl := input("please input your name")
# # print ("strl is :", strl)
# num1 = input("please input an number")
# print("numl is:",num1,"type is:", type(num1))
# num1 = int(num1) 转换为整形
# print (num1 +200)
# print("abc","fhd",sep="#",end=“@@@”) #sep 为指定分隔符 默认空格 end 指定结尾添加@@@字符 默认情况是换行符
# print("line 2")
a = input("please input a")
b = input("please input b")
a = int(a) b = int(b)
print("两数之和",a+b)
print("两数之差",a-b)
print("两数之积",a*b) package main
import "fmt"
/*
fmt
bufio
*/
func main() {
// //输入 fmt.Scan Scanf Scanln 都可以
//var a int
//var b string
//fmt.Println("请输入a和b")
// //&取a的内存地址符 在内存开辟空间
// fmt.Scan(&a, &b)
// fmt.Println("a is ", a, ",b is", b)
//}
//严格按照指定形式输出
//fmt.Scanf("a=%d,b=%s", &a, &b) //d数字 s字符串
//fmt.Println("a is ", a, ",b is", b)
//以换行符结束本次输入
//fmt.Scanln(&a, &b) //不需要全部敲完b可不输入 换行就退出enter
//fmt.Println("a is :", a, ",b is:", b)
//print("this is test")可能输出错误为红色
//bufio输入 有缓存性质 创建一个从键盘接受输入的对象
//reader := bufio.NewReader(os.Stdin) //os.Stdin标准输入从键盘
//开始从键盘读取 以指定 换行符结束
//line, e := reader.ReadString('#')
//返回两个结果line(读取的数据),e(表示错误)
//fmt.Println("line=", line)
//fmt.Println("error=", e) //nil表示空 没有错误
//line, _ := reader.ReadString('\n')
//fmt.Println("line is", line)
//输出
//fmt.Print不换行输出 Println Printf
//fmt.Print("abf") //不换行输出
//fmt.Print("abr")
//换行输出
//fmt.Println("fhg")
//fmt.Println("fhig")
//格式化输出
//name := "sctl"
//age := 12
//sex := "fmale"
//fmt.Printf("hello,%s,age is %d,sex is %s", name, age, sex)
/*
条件判断 if 条件{
执行语句
}else{
条件执行语句2
}
if条件{
条件执行语句}
else if {
语句}
else{
语句
}
*/
//age := 20
//if age < 18 {
// fmt.Println("不可以上网")
//} else if age == 20 {
// fmt.Println("可上网")
//} else {
// fmt.Println("age不等于20")
//}
var root1 string
var password1 string
fmt.Println("请输入root和password")
fmt.Scan(&root1, &password1)
if root1 != "root" {
fmt.Println("用户名错误")
} else if password1 != "123456" {
fmt.Println("密码错误")
} else {
fmt.Println("登录成功")
}
}
package main
/*
整数 符号位整型 int(分配64 看你的操作系统是多少位) int8(小整数) 第一位放符号 只有七位
uint8 unit14 32 64
*/
var a int8
var b int
var c int
func main() {
//a = 127
//fmt.Println("a is ", a)
//b = 3
//c = 2
//fmt.Println("c-b=", c-b)
//var x int
//x = 100
//fmt.Println(x, unsafe.Sizeof(x))
//不同类型不能计算
//var y int64
//y = 200
//fmt.Println(x + y)
//进制表示
//bin_num := 0b11 //二进制一0b开头 数字 只包含 0和1
//fmt.Printf("%d type is %T \n", bin_num, bin_num)%d 输出十进制整数
%T 输出值的类型
//oct_num := 0o17 //八进制 包含0-7
//hex_num := 0x1f //十六进制 数字0-9 字母a-f
//fmt.Println(oct_num, hex_num)
//a := 10 不需要先定义 可以直接赋值
//b := 3
//fmt.Println(a / b)//两个相同类型运算结果也是同类型
//浮点型 float32 (32个二进制位)符号位1位 8位表示指数部分 23 表示尾数
//更准确 float64 符号位1位 11位表示指数 52 位表示尾数部分
//float 不精确 比如以下 在数学里面是相等的但float中是不相等的 只能无限接近
//var f1 float32 = 0.111111
//var f2 float32 = 0.222222
//var f3 float32 = 0.333333
//if f1+f2 == f3 {
// fmt.Println("相等")
//} else {
// fmt.Println("不相等")
//}
//要求准确的话可以 decimal 需要使用这个库
//复数 complex
//complex
//var z1 complex64 = 5 + 4i
//var z2 complex64 = 4.5 + 2.4i
//fmt.Println(z1 + z2)
}
max := 0
var max_char rune
for _, i := range str1 {
count := 0
for _, j := range str1 {
if i == j {
count++
}
}
if count > max {
max = count
max_char = i
}
}
fmt.Printf("最多字符为:%c,出现次数为:%d", max_char, max)
}
作业 //接受用户从键盘输入的字符串,统计出现次数最多的字符 输出是哪个字符,以及它出现的次数
// aaabbc --> a 3 //ab --> a 1
func main() {
var str1 string
fmt.Println("请输入字符串")
fmt.Scan(&str1)
cishu := 0
max := 0
char := 0
for i := 0; i < len(str1); i++ {
cishu = 1
for j := 0; j < len(str1); j++ {
for h := 0; h < i; h++ {
if str1[i] == str1[h] {
break
}
}
if i != j && str1[i] == str1[j] {
cishu++
if cishu > max {
max = cishu
char = i
}
}
}
cishu = 0
}
fmt.Println(max, char)
}
for i := 0; i < len(str1); i++ { //适合ascll字符的遍历
for _, i := range str2
3. 两种不同的遍历
4. %d:用于整数(包括 int、int8、int16、int32、int64 和其无符号版本)。
5. %f:用于浮点数(包括 float32 和 float64)。
6. %t:用于布尔值(true 或 false)。
7. %v:用于按照其类型的默认格式输出值。%v 几乎可以用于所有类型的值。
8. %T:输出值的类型(使用 Go 语法)。
9. %c:将整数作为 Unicode 字符输出。
10. %q:用于可打印的字符,如字符串或字符,并为其添加引号。
11. %x 和 %X:用于整数,分别以小写和大写形式输出其十六进制表示。
12. %b:用于整数,输出其二进制表示。
13. %o:用于整数,输出其八进制表示。
14. %g:用于浮点数,使用较短的表示法,但不牺牲太多精度。
15. num1 := 100
str1 := strconv.Itoa(num1) //int-->str
fmt.Println(str1)
v, e := strconv.Atoi("200") //字符串 返回两个值不能转换的话e会拿到错误信息 不为空
if e != nil {//e不为空所以带入了错误信息
fmt.Println("转换错误")
} else {
16. 字符串的查找和替换
Contains(s1,s2 string) 返回bool 判断字符串上s2在不在s1中
Count(s1,s2 string)统计字符串s1中,s2这个子串出现多少次
Index(s1,s2 string)返回s2在s1中第一次出现的位置 不存在就返回-1
Replace (s1,old,new string,n int)将s1 中前n 个old子字符串替换