区块链分支循环

本文主要探讨了程序的流程控制结构中的循环结构,包括在区块链技术中的应用。讲解了Go语言中的If语句和Switch语句,强调了Switch语句在匹配条件后默认会跳出,除非使用fallthrough强制执行后续case。通过对不同情况的示例代码展示,阐述了如何在Go语言中实现条件判断和分支控制在区块链场景下的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。
在这里插入图片描述

分支循环

程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构。

一、条件语句

1.1 If语句

语法格式:

if 布尔表达式 {

/* 在布尔表达式为 true 时执行 */

}

if 布尔表达式 {

/* 在布尔表达式为 true 时执行 */

} else {

/* 在布尔表达式为 false 时执行 */

}

if 布尔表达式1 {

/* 在布尔表达式1为 true 时执行 */

} else if 布尔表达式2{

/* 在布尔表达式1为 false ,布尔表达式2为true时执行 */

} else{

/* 在上面两个布尔表达式都为false时,执行*/

}

示例代码:

package main

import “fmt”

func main() {

/* 定义局部变量 */

var a int = 10

/* 使用 if 语句判断布尔表达式 */

if a < 20 {

   /* 如果条件为 true 则执行以下语句 */

   fmt.Printf("a 小于 20\n" )

}

fmt.Printf(“a 的值为 : %d\n”, a)

}

如果其中包含一个可选的语句组件(在评估条件之前执行),则还有一个变体。它的语法是

if statement; condition {

}

if condition{

}

示例代码:

package main

import (

"fmt"

)

func main() {

if num := 10; num % 2 == 0 { //checks if number is even

    fmt.Println(num,"is even")

}  else {

    fmt.Println(num,"is odd")

}

}

需要注意的是,num的定义在if里,那么只能够在该if…else语句块中使用,否则编译器会报错的。

1.2 switch 语句

1.2.1 switch的语法

switch是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较,并根据匹配执行代码块。它可以被认为是一种惯用的方式来写多个if else子句。

switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break。

而如果switch没有表达式,它会匹配true

Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。

变量var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3。

switch var1 {

case val1:

    ...

case val2:

    ...

default:

    ...

}

示例代码:

package main

import “fmt”

func main() {

/* 定义局部变量 */

var grade string = “B”

var marks int = 90

switch marks {

  case 90: grade = "A"

  case 80: grade = "B"

  case 50,60,70 : grade = "C"  //case 后可以由多个数值

  default: grade = "D"  

}

switch {

  case grade == "A" :

     fmt.Printf("优秀!\n" )     

  case grade == "B", grade == "C" :

     fmt.Printf("良好\n" )      

  case grade == "D" :

     fmt.Printf("及格\n" )      

  case grade == "F":

     fmt.Printf("不及格\n" )

  default:

     fmt.Printf("差\n" );

}

fmt.Printf(“你的等级是 %s\n”, grade );

}

1.2.2 fallthrough语句

如需贯通后续的case,就添加fallthrough

package main

import (

"fmt"

)

type data [2]int

func main() {

switch x := 5; x {

default:

    fmt.Println(x)

case 5:

    x += 10

    fmt.Println(x)

    fallthrough

case 6:

    x += 20

    fmt.Println(x)



}

}

Python爬虫基础案例通常从简单的网页抓取开始,比如爬取猫眼电影的数据。这里以`requests`库获取网页内容,然后用`BeautifulSoup`解析HTML,提取所需信息,并通过`pandas`将数据保存到Excel文件为例: 首先,你需要安装必要的库: ```bash pip install requests beautifulsoup4 pandas openpyxl ``` 下面是一个基本的Python爬虫脚本示例,假设我们要爬取电影名称、评分和主演信息: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 爬取URL url = "https://maoyan.com/board/4" response = requests.get(url) # 解析HTML soup = BeautifulSoup(response.text, &#39;lxml&#39;) # 查找需要的数据元素,这里假设电影列表在class为&#39;movie-list&#39; movies_data = soup.find_all(class_=&#39;movie-list&#39;) # 创建空列表存储数据 data_list = [] # 遍历每部电影 for movie in movies_data: title = movie.find(&#39;a&#39;, class_=&#39;title&#39;).text rating = movie.find(&#39;i&#39;, class_=&#39;rating_num&#39;)[&#39;title&#39;] stars = &#39;, &#39;.join(movie.find_all(&#39;span&#39;, class_=&#39;name&#39;)) # 将数据添加到列表 data_list.append([title, rating, stars]) # 将数据转换为DataFrame df_movies = pd.DataFrame(data_list, columns=[&#39;电影名称&#39;, &#39;评分&#39;, &#39;主演&#39;]) # 保存到Excel文件 filename = &#39;猫眼电影数据.xlsx&#39; df_movies.to_excel(filename, index=False) ``` 这个例子中,爬虫会定期访问指定的猫眼电影页面,提取每个电影的基本信息,然后将其保存到一个名为`猫眼电影数据.xlsx`的Excel文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值