前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python教程6--自定义函数,数据类型转换,解方程

python教程6--自定义函数,数据类型转换,解方程

作者头像
IT云清
发布2019-01-22 10:59:02
1.1K0
发布2019-01-22 10:59:02
举报
文章被收录于专栏:IT云清IT云清

本文主要讲解点如下:

  • 简单函数
  • 数据类型转换
  • 空函数
  • 自定义绝对值函数
  • 自定义函数 检查参数类型
  • 函数返回多个值
  • 求解ax2 + bx + c = 0 的根
具体代码如下:
代码语言:javascript
复制
'函数相关'

__author__ = 'momo'

import sys
import math

# 简单函数
print(abs(-12))
print(max(1,4,34,-23))
print(min(1,-3,-3,45,0))
print('----------------------')
print('----------------------')
print('----------------------')
# 数据类型转换
print(int('123'))
print(int(2.5435))
print(str(24))
print(str(34.33))
print('---------下面三个都是true-------------')
print(bool(1))
print(bool(-1))
print(bool('ss'))
print('----------下面三个都是false------------')
print(bool(0))
print(bool(''))
print(bool(None))
print('----------自定义函数------------')
# 空函数
def my_a(a):
    if a < 5:
        print('a<5')
    else:
        pass


my_a(21)


# 自定义绝对值函数
def my_abs(x):
    if x >= 0:
        print('是正数:', x)
    else:
        print('是负数', -x)


my_abs(-1)
# my_abs('12')  TypeError: '>=' not supported between instances of 'str' and 'int'


print('----------自定义函数  检查参数类型------------')
def my_abs2(z):
    if not isinstance(z,(int,float)):
        raise TypeError("错误的数据类型")
    if z <= 0:
        return -z
    else:
        return z
print(my_abs2(-13))
# print(my_abs2("fs"))      TypeError: 错误的数据类型


print('----------函数返回多个值------------')
# 一个函数返回多个值,实质上是返回了一个tuple,在语法上,返回一个tuple可以省略括号,多个变量可以同时接收一个tuple,按照位置顺序对应赋值
def move(x,y,step,angle=0):
    nx = x + step*math.cos(angle)
    ny = y - step*math.sin(angle)
    return nx,ny

a = move(100,100,60,math.pi/6)
print(a) # (151.96152422706632, 70.0)
x,y = move(100,100,60,math.pi/6)
print(x,y) # 151.96152422706632 70.0

# eg:返回list的长度
def testlist(a):
    if not isinstance(a,list):
        raise TypeError("参数类型错误")
    if len(a) < 3:
        return 'list太短了',len(a)
    else:
        return 'list太长了',len(a)

lista = [1,3,'aa','b']
mes,count = testlist(lista)
print(mes,count) # list太长了 4
print('--------------------')

# eg:定义函数,返回方程 ax2 + bx + c = 0 的根

print('----------求解ax2 + bx + c = 0 的根------------')

def my_quadratic(a,b,c):
    if not isinstance(a,(int,float)):
        raise TypeError('a is not a number,please try again')
    if not isinstance(b,(int,float)):
        raise TypeError('b is not a number,please try again')
    if not isinstance(c,(int,float)):
        raise TypeError('b is not a number,please try again')
    d = b*b - 4*a*c
    if d < 0:
        return 'b*b-4*a*c= ',d,'<0,方程无解'
    else:
        if a == 0:
            if b == 0:
                if c == 0:
                    return '方程解为全体实数'
                else:
                    return '方程无解'
            else:
                x1 = -c/b
                x2 = x1
                return x1,x2
        else:
            x1 = (-b + math.sqrt(d))/(2*a)
            x2 = (-b - math.sqrt(d))/(2*a)
            return x1,x2

print(my_quadratic(2,3,1))  #   (-0.5, -1.0)
print(my_quadratic(1,3,-4)) #   (1.0, -4.0)
print(my_quadratic(2,2,5))  #   ('b*b-4*a*c= ', -36, '<0,方程无解')
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文主要讲解点如下:
    • 具体代码如下:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档