天天看點

go語言習題 01

//1.編寫代碼分别定義一個整型、浮點型、布爾型、字元串型變量,使用fmt.Printf()搭配%T分别列印出上述變量的值和類型。
package main

import "fmt"

func main() {
	var a int = 1
	var b float64 = 3.14
	var c = true
	d := "chenjunde"

	fmt.Printf("a= %d\n", a)
	fmt.Printf("b= %f\n", b)
	fmt.Printf("c= %t\n", c)
	fmt.Printf("d= %s\n", d)
	fmt.Printf("a: %T\n", a)
	fmt.Printf("b:  %T\n", b)
	fmt.Printf("c:  %T\n", c)
	fmt.Printf("d:  %T\n", d)
}
知識點:
1.fmt包 
2.變量的基本概念
           
// 2.編寫代碼統計出字元串"hello沙河小王子"中漢字的數量。
package main

import "fmt"

//思路:
// 1. 周遊字元串 判斷如果字元 ASCII > z 說明字元是漢字
// 2. 周遊字元串
// 				 func Is(rangeTab *RangeTable, r rune) bool
// 				 方法判斷字元是否是漢字 傳回值是一個布爾類型
// 				 unicode.Han:指針類型

//思路1:按照ASCII進行判斷 
func main() {
	str := "hello 沙河小王子"
	number := 0
	for _, value := range str {
		if value > 'z' {
			//這個是漢字
			number++
		}
	}
	fmt.Println("number:", number)
}

思路2:按照unicode包的方法 對字元進行判斷 

func main() {
	number := 0
	str := "hello 沙河小王子"
	for _, value := range str {
		if unicode.Is(unicode.Han, value) {
			number++
		}
	}
	fmt.Println("number:", number)
}

知識點:
1.字元串的周遊字元的方式 
2.for range 循環 
3.unicode包
	Is(rangeTab *RangeTable, r rune) bool 函數 
	unicode.Han 内置的指針變量
           
//求數組[1, 3, 5, 7, 8]所有元素的和

package main

import "fmt"

func main() {
	count := 0
	a := [...]int{1, 3, 5, 7, 8}
	for _, v := range a {
		count += v
	}
	fmt.Println(count)
}
知識點:
1.數組的定義 
2.周遊數組 
           
// 找出數組中和為指定值的兩個元素的下标,比如從數組[1, 3, 5, 7, 8]中找出和為8的兩個元素的下标分别為(0,3)和(1,2)。

package main

import "fmt"

func main() {
	a := [...]int{1, 3, 5, 7, 8}
	for x := 0; x < len(a); x++ {
		for y := x + 1; y < len(a)-x; y++ {			//設定兩個變量  x = 1 時 y = 2 3 4 5 進行周遊 …… 
			if a[x]+a[y] == 8 {
				fmt.Println(x, y)
			}
		}
	}
}

知識點:
1.數組的定義 
2.數組的周遊
           
// 編寫代碼列印9*9乘法表
// 1*1
// 2*1 2*2
// 3*1 3*2 3*3
package main

import "fmt"

func main() {
	for x := 1; x <= 9; x++ {
		for y := 1; y <= x; y++ {
			fmt.Printf("%d * %d = %d  ", y, x, x*y)
		}
		fmt.Println()
	}
}
知識點:
for循環語句的使用
           
// 請使用内置的sort包對數組var a = [...]int{3, 7, 8, 9, 1}進行排序
// func Ints(a []int)
package main

import (
	"fmt"
	"sort"
)

func main() {
	var a = [...]int{3, 7, 8, 9, 1}
	var b = a[:]
	sort.Ints(b)
	fmt.Println(b)
}
知識點:
sort包的Ints()方法
func Ints(a []int) :進行遞增排序 參數是整形的切片 
           
// 寫一個程式,統計一個字元串中每個單詞出現的次數。比如:”how do you do”中how=1 do=2 you=1。
package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "how do you do"
	word := make(map[string]int)
	substr := strings.Split(str, " ")
	for _, value := range substr {
		word[value]++
	}
	for key, value := range word {
		fmt.Printf("%s: %d\n", key, value)
	}
}

//知識點:
1.strings包下的Split()方法 将字元串按照指定的字元進行分割 
傳回值是一個切片 
2.map的定義 和使用方法