Python之if条件语句编程实训 python实训作业

第1关:将输入的三个整数x,y,z按由小到大的顺序排列

本关必读

在编程语言学习的过程中,对多个数字进行大小比较是必须掌握的技能之一。细究起来,要比较对象的多少并不重要,重要的是学会掌握此类问题的解决思路。以三个数大小比较为例,思路如下:

  • 第一轮比较:从第一个数开始,先比较第一个数和第二个数,若第一个数大于第二个数,则两数互换;否则不作处理,同理接着比较第二个数和第三个数,这样就可以得到三个数的最大值;

  • 第二轮比较:再从第一个数开始,比较第一个数和第二个数的大小,方法和第一轮一样,这样就可以得到最小数和中间数。

本关任务

本关任务是将输入的三个整数x,y,z按由小到大的顺序排列,即实现step1/NumberSort.py文件中的sort(x,y,z)函数,NumberSort.py文件的代码如下:

 
  
  1. # -*- coding:utf-8 -*-
  2. # 将三个数按由小到大的顺序排列
  3. def sort(x,y,z):
  4. # 请在此添加实现代码

其中:xyz是传递给函数sort的三个参数。

测试说明

本关的测试文件是step1/NumberSortTest.py,负责对你写的实现代码进行测试。具体说明如下:

 
  
  1. # -*- coding:utf-8 -*-
  2. import NumberSort,os
  3. # 从命令行读入三个整数
  4. # 这三个整数取自测试集的输入
  5. x,y,z = input().split()
  6. (x,y,z) = NumberSort.sort(x,y,z)
  7. print (x,y,z)

上述代码中所调用函数的参数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断sort(x,y,z)函数是否正确实现。注意,step1/NumberSortTest.py的代码不能被修改。

以下是平台对step1.NumberSortTest的测试样例: 测试输入:2 3 1 预期输出:1 2 3

开始你的任务吧,祝你成功!

参考答案:

# -*- coding:utf-8 -*-

# 将三个数按由小到大的顺序排列
def sort(x,y,z):
    # 请在此添加实现代码
    if x>y:
        x,y=y,x
    if y>z:
        y,z=z,y
    if x>y:
        x,y=y,x
    return x,y,z

第2关:求第n个斐波那契数列的值

本关必读

斐波那契数列(Fibonacci Sequence),又称黄金分割数列,因数学家列昂纳多•斐波那契(Leonardoda Fibonacci)以兔子的繁殖为例而引入的,故又称为“兔子数列”,指的是这样一个数列:112358132134……

在数学上,斐波纳契数列被以如下递归的方法定义: F(0) = 0F(1) = 1F(n) = F(n - 1) + F(n - 2) (n >= 2,n∈N*)

本关任务

本关任务是求第n个斐波那契数列的值,即实现step2/FibNumber.py文件中的fib(n)函数,FibNumber.py文件的代码如下:

 
  
  1. # -*- coding:utf-8 -*-
  2. # 求第n个斐波那契数列的值
  3. def fib(n):
  4. # 请在此添加实现代码

其中:n是传递给函数fib的参数。

测试说明

本关的测试文件是step2/FibNumberTest.py,负责对你写的实现代码进行测试。具体说明如下:

 
  
  1. # -*- coding:utf-8 -*-
  2. import FibNumber,os
  3. # 从命令行读入一个整数
  4. # 这个整数取自测试集的输入
  5. n = int(input())
  6. print (FibNumber.fib(n))

上述代码中所调用函数的参数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断fib(n)函数是否正确实现。注意,step2/FibNumberTest.py的代码不能被修改。

以下是平台对step2.FibNumberTest的测试样例: 测试输入:10 预期输出:55

开始你的任务吧,祝你成功!

参考答案:

# -*- coding:utf-8 -*-

# 求第n个斐波那契数列的值
def fib(n):
    # 请在此添加实现代码
    fn1,fn2=1,1
    if n==2:
        return 1
    else:
        for i in range(2,n):
            result=fn1+fn2
            fn1=fn2
            fn2=result
        return result

第3关:判断输入的年份是否是闰年

本关必读

闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。

闰年计算方法:

  • 普通年能被4整除且不能被100整除的为闰年。
  • 世纪年能被400整除的是闰年。

本关任务

本关任务是判断输入的年份是否是闰年,即实现step3/IsLeapYear.py文件中的leap_year(year)函数,IsLeapYear.py文件的代码如下:

 
  
  1. # -*- coding:utf-8 -*-
  2. # 判断输入的年份是否是闰年
  3. def leap_year(year):
  4. # 请在此添加实现代码

其中:year是传递给函数leap_year的参数。

测试说明

本关的测试文件是step3/IsLeapYearTest.py,负责对你写的实现代码进行测试。具体说明如下:

 
  
  1. # -*- coding:utf-8 -*-
  2. import IsLeapYear,os
  3. # 从命令行读入一个整数
  4. # 这个整数取自测试集的输入
  5. year = int(input())
  6. print (IsLeapYear.leap_year(year))

上述代码中所调用函数的参数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断leap_year(year)函数是否正确实现。注意,step3/IsLeapYearTest.py的代码不能被修改。

以下是平台对step3.IsLeapYearTest的测试样例: 测试输入:2012 预期输出:Yes

测试输入:2015 预期输出:No

开始你的任务吧,祝你成功!

参考答案:

# -*- coding:utf-8 -*-    

# 判断输入的年份是否是闰年
def leap_year(year):
    # 请在此添加实现代码
    if (year%4==0 and year%100!=0) or (year%400==0):
        return 'Yes'
    else:
        return 'No'

————————分割线————————

本人python小白一枚,内容如有不妥之处还请大佬们指点

你可能感兴趣的:(python)