11-22 Python数字运算练习

来源:互联网 发布:淘宝精刷销量 编辑:程序博客网 时间:2024/05/22 07:41

创建一个程序,让用户输入数值,在用户输入Enter后输出数值本身、个数、和、最小值、最大值和平均值

效果:

请输入数字或者回车结束:1请输入数字或者回车结束:2请输入数字或者回车结束:f请输入数字:请输入数字或者回车结束:6.5请输入数字或者回车结束:3请输入数字或者回车结束:[1.0, 2.0, 6.5, 3.0]count= 4 sum= 12.5 lowest= 1.0 highest= 6.5 mean= 3.125

代码:

def is_num(a):    try:        float(a)        return True    except:        pass    return Falsenumber=[]while True:        a=input("请输入数字或者回车结束:")        if not a:            break        if is_num(a):            number.append(float(a))        else:            print("请输入数字:")count=len(number)sum=sum(number)lowest=min(number)highest=max(number)mean=sum/countprint(number)print("count=",count,"sum=",sum,"lowest=",lowest,"highest=",highest,"mean=",mean)

这个练习并不难,但是写的时候遇到了三个坎。

  1. 首先定义了一个空的列表number,开始我是直接append用户输入的数据到列表中的,但是后面发现这样append进去会变成字符列表,后面改成了先用一个变量a接收用户输入,然后再转换成数值append到列表number中。
  2. 第二是回车结束这个点,一开始我是用number列表接收的,判断number[-1]==None来判定,但是不行,改成了not number[-1]就可以了,不过这样最后会有一个空字符“”出现,我的方法是用number.pop(-1)把它去掉了,然后再用循环把number转换成数值。但是,这样太麻烦了,后来改成用临时变量a去接收就变得简单多了,直接判断一下not a 然后number.append(int(a))就可以了.
  3. 第三个是判断用户输入的是不是数字,刚开始百度搜到的是a.isdigit()这个函数,不过后来测试发现这个函数只对整型有效,而浮点型是无效的。后来是把a转成了float,然后建立了一个函数去判断a是不是浮点数,为什么把a转成float?因为偷懒不想把判断函数写太长哈哈哈,而且int转float不会有丢失,所以没事啦,就用float吧。下面是判断是否为float的函数:
    def is_num(a):    try:        float(a)        return True    except:        pass    return False
另外,还有一个要注意的问题,就是Python的函数一定要写在调用前面,不然会报错的。写到一半的时候想到用这个函数,就直接写在最后,然后就报错了。。。搞了好久才发现要写在前面,哎,教训啊。
漏了一句,函数名是要小写的。

原创粉丝点击