西南科技大学 派森 阶段测试2 周五第三讲 简单公式计算

先小小的嘴欠一句:周三晚上阶段考试2文件操作不比这个题目复杂多了,我看两百多个人满分180多个,怎么到了这个最简单的题目居然只有3.87%的通过率呢?

 

那么可以知道用可以用if判断的条件有三个:

①:n的范围在(0,1000000]之外

②:n是首位为0的多位数

③:n是一个浮点数

以及还可以知道用try...except...else结构判断的条件有一个:

①:n就是一堆胡乱的非纯数字字符串,如果直接int或float转类型会报错,所以需要try结构。

try结构:如果执行了except,那么就不会执行else,否则执行else

代码如下:

def fib(i):
    return 1 / i
n = input()
try:
    #n如果是一串非数字字符也是不合法的,int化会直接报错,所以需要try...except...else结构
    #为什么不直接int(n)呢?因为后面判断n是否是浮点数时,字符n比数字n更好用而且
    #后面还要进行对n是否是首位为0的多位数进行判断,如果直接int化n,那么这判断将无法进行
    t = int(n)
except:
    print('输入不合法!')
else:
    #n是首位是0的多位数、n是浮点数、n <= 0 或者 n > 1000000都是不合法,可以使用if
    if n[0] == '0' or '.' in n or int(n) > 1000000 or int(n) <= 0:
        print('输入不合法!')
    else:
            n = int(n)
            sum = 0
            if n % 2 == 0:
                for i in range(2, n + 2, 2):
                    sum += fib(i)
                    # print(i)
                print('%.2f' % sum)
            else:
                for i in range(1, n + 1, 2):
                    sum += fib(i)
                    # print(i)
                print('%.2f' % sum)
            #print(n)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值