Python基础语法函数——顺序与选择结构

第1关:顺序结构

任务描述

程序最基本的结构就是顺序结构,顺序结构就是程序按照语句顺序,从上到下依次执行各条语句。

本关要求学习者理解顺序结构,并对输入的三个数changeonechangetwoplus先交换changeonechangetwo值,然后再计算changeone + plus的值。

相关知识

要实现上述功能,需要严格按照顺序来实现每一个步骤。如果顺序错误,那么便会得出错误的结果。

顺序结构

顺序结构如下图1所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4m0PJzAB-1665416905234)(E:\coding_file\python\educoder\img\顺序结构.jpg)]

图 1 顺序结构示意图

假设存在abc三个整数,如果按照以下顺序执行:

c = a + b
b = c - a
a = b + c

与按照以下顺序:

b = c - a
a = b + c
c = a + b  

得出的abc的结果是不同的。

交换数值

假设存在整数a = 10b = 20,交换ab数值的语句如下:

tmp = a
a = b
b = tmp 
编程要求

本关的编程任务是补全inTurn.py文件中的函数部分,程序中给出abc三个整数,要求实现先交换ab的值,然后计算a + c的值并输出。

本关涉及的代码文件inTurn.py的代码框架如下:

changeOne = int(input())
changeTwo = int(input())
plus = int(input())
# 请在此添加代码,交换changeOne、changeTwo的值,然后计算changeOne、plus的和result的值
########## Begin ##########

########## End ##########
print(result)
测试说明

本关的测试文件是src/step1/inTurntest.py,测试过程如下:

  1. 学习者将src/step1/inTurn.py中的代码补充完毕,然后点击评测。平台自动编译运行 inTurntest.py,并以标准输入方式提供测评输入;
  2. 平台获取程序的输出,然后将其与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step1/inTurntest.py的样例测试集:

测试输入:

2
5
10

预期输出:

15
参考答案
changeOne = int(input())
changeTwo = int(input())
plus = int(input())

# 请在此添加代码,交换changeOne、changeTwo的值,然后计算changeOne、plus的和result的值
########## Begin ##########
changeOne, changeTwo = changeTwo, changeOne
result = changeOne + plus
########## End ##########
print(result)

第2关:选择结构:if-else

任务描述

程序的第二大结构就是选择结构。在此结构中,程序通过对一个代码块或者几个代码块的判断来决定接下来运行哪一个代码块。以下场景还原了选择结构的现实场景: 某公司根据员工的工龄来决定员工工资的涨幅,如下所示:

  • 工龄大于等于5年并小于10年时,涨幅是现工资的5%
  • 工龄大于等于10年并小于15年时,涨幅是现工资的10%
  • 工龄大于等于15年时,工资涨幅为15%

本关的任务是让学习者理解选择结构,学会使用最基本的选择语句:if-else语句。

相关知识
选择结构

选择结构如下图1所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6Wsoim8-1665416905235)(https://data.educoder.net/api/attachments/169899)]
图 1

if-else语句

在 Python 中,if-else语句用于控制程序执行,基本形式为:

if 判断语句1:
	step1
else:
	step2

判断语句1为真时,执行step1,否则执行step2。例如:

name = 'choose'
#判断变量name是否为'choose'
if name == 'choose':
	print("条件成立")
else:
	print("条件不成立")
elif语句

当判断条件有多个时,则用elif语句,基本形式为:

if 判断语句1:
	step1
elif 判断语句2:
	step2
elif 判断语句3:
	step3
……
else:
	step

判断语句1为真时,执行step1,当判断语句1为假、判断语句2为真时执行step2,……,最后判断语句都为假时执行step。例如:

userId = 43
#判断员工号
if userId == 10:
	print("这是10号员工")
elif userId == 22:
	print("这是22号员工")
elif userId == 18:
	print("这是18号员工")
else:
	print("员工ID为:",userId)

如果您想了解更多选择结构的相关知识,请参考:[美] Katie Cunningham 著《Python 入门经典》第三章。

编程要求

本关的编程任务是补全choose.py文件中的判断语句部分,具体要求如下:

  • 填入如果workYear < 5的判断语句;
  • 填入如果workYear >= 5 and workYear < 10的判断语句;
  • 填入如果workYear >= 10 and workYear < 15的判断语句;
  • 填入当上述条件判断都为假时的判断语句。

本关涉及的代码文件choose.py的代码框架如下:

workYear = int(input())
# 请在下面填入如果workYear < 5的判断语句
########## Begin ##########

########## End ##########
print("工资涨幅为0")
# 请在下面填入如果workYear >= 5 and workYear < 10的判断语句
########## Begin #########
########### End ##########
print("工资涨幅为5%")
# 请在下面填入如果workYear >= 10 and workYear < 15的判断语句
########## Begin ##########

########## End ##########
print("工资涨幅为10%")
# 请在下面填入当上述条件判断都为假时的判断语句########## Begin ##########

########## End ##########
print("工资涨幅为15%")
测试说明

本文的测试文件是src/step2/choosetest.py,具体测试过程如下:

  1. 学习者将src/step2/choose.py中的代码补充完毕,然后点击评测。平台自动编译运行choosetest.py,并以标准输入方式提供测评输入;
  2. 平台获取程序的输出,然后将其与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step2/choosetest.py的样例测试集:

测试输入:

10

预期输出:

工资涨幅为10%
参考答案:
workYear = int(input())
# 请在下面填入如果workYear < 5的判断语句
########## Begin ##########
if(workYear < 5):
########## End ##########
    print("工资涨幅为0")
# 请在下面填入如果workYear >= 5 and workYear < 10的判断语句
########## Begin ##########
elif(workYear >= 5 and workYear < 10):
########## End ##########
    print("工资涨幅为5%")
# 请在下面填入如果workYear >= 10 and workYear < 15的判断语句
########## Begin ##########
elif(workYear >= 10 and workYear < 15):
########## End ##########
    print("工资涨幅为10%")
# 请在下面填入当上述条件判断都为假时的判断语句
########## Begin ##########
else:
########## End ##########
    print("工资涨幅为15%")

第3关:选择结构 : 三元操作符

任务描述

程序中的选择结构中除了if-elseelif之外,还有一个三元操作符。三元操作符也是根据条件判断执行哪一个代码块,但它的最大特点是不需要像if-else语句那样写多行代码,而是只需一行代码。
本关要求学习者能够学会并使用三元操作符来判断谁才是射击比赛的赢家。

相关知识
三元操作符

三元操作符的基本格式为:

result = x if x < y else y

其中,x < y为判断语句。若x < y为真则result = x,否则result = y

如果您想了解更多选择结构的相关知识,请参考:[美] Katie Cunningham 著《 Python 入门经典》第三章。

编程要求

本关的编程任务是补全isWin.py文件中的判断语句部分,具体要求如下:

  • 根据输入的jimjerry的射击得分进行判断;
  • jim得分更高,则赢家为jim,输出jim的名字;
  • jerry得分更高,则赢家为jerry,输出jerry的名字。

本关涉及的代码文件isWin.py的代码框架如下:

jimscore = int(input())
jerryscore = int(input())
# 请在此添加代码,判断若jim的得分jimscore更高,则赢家为jim,若jerry的得分jerryscore更高,则赢家为jerry,然后输出赢家的名字。
########## Begin ##########

########## End ##########
print(winner)
测试说明

本文的测试文件是src/step3/isWintest.py,具体测试过程如下:

  1. 学习者将 src/step3/isWin.py中的代码补充完毕,然后点击评测。平台自动编译运行 isWintest.py ,并以标准输入方式提供测评输入;
  2. 平台获取程序的输出,然后将其与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step3/isWintest.py的样例测试集:

测试输入:

13
15

预期输出:

jerry
参考答案
jimscore = int(input())
jerryscore = int(input())
# 请在此添加代码,判断若jim的得分jimscore更高,则赢家为jim,若jerry的得分jerryscore更高,则赢家为jerry,并输出赢家的名字
########## Begin ##########
winner = 'jim' if jimscore > jerryscore else 'jerry'
########## End ##########
print(winner)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值