WenRou's Blog
python第十一天:函数
2018-12-22 温柔哥


1、求圆的面积



x=float(input('请输入圆的半径:')) 



area=float(3.14159265359)



if x>0:



s=areax*2



print('圆的面积是:'+'%.3f'%s)








import math

r=float(input('请输入圆半径:'))

s=r*r*math.pi

while r<=0:

    r = float(input('请输入圆半径:'))

if r>0:

        print('圆面积为%.2f' %r)






2、1到100求和



def sum( ):

    sum=0

    x=1

    while x<101:

        x=x+1

        sum = sum + x

    return sum

print(sum())



#从n 到 n+1 求和   while语句 同上









a=int(input('请输入第一个整数:'))

b=int(input('请输入第二个整数:'))



def sum( ):

    sum=0

    x = a

    while x<b+1:

        x=x+1

        sum = sum + x

    return sum



print(sum())







#第二种方法 for 语句



a = int(input('a'))
b = int(input('b'))



def sum( ):
sum=0
for n in range(a,b+1):
sum=sum+n
return sum
print(sum())









2、请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:



ax2 + bx + c = 0的两个解。



提示:计算平方根可以调用math.sqrt()函数:

参考答案:



import math

def quadratic(a, b, c):

    if b**2 - 4*a*c < 0:

        print('方程无实数解,请重新输入')

        exit()

    else:

        x1 = (-b + math.sqrt(b ** 2 - 4*a*c)) / 2*a

        x2 = (-b - math.sqrt(b ** 2 - 4*a*c)) / 2*a

    return x1, x2



a = input('请输入一元二次方程ax²+bx+c=0的a:\n')

b = input('请输入一元二次方程ax²+bx+c=0的b:\n')

c = input('请输入一元二次方程ax²+bx+c=0的c:\n')

a = eval(a)

b = eval(b)

c = eval(c)

results = quadratic(a, b, c)

print('x1={:.2f};\nx2={:.2f}.'.format(results[0], results[1]))











或者



import math



def quadratic(a,b,c):

    if a == 0:

        if b != 0:

            x = -c/b

            return x,x

        else:

            pass

    else:

        p = b*b - 4*a*c

        if p>=0:

            q = math.sqrt(p)

        else:

            q = complex(0,math.sqrt(math.fabs(p)))

        x1 = (-b + q)/(2*a)

        x2 = (-b - q)/(2*a)

        return x1,x2



print('2x^2+3x+1 = 0 的两个解是:',quadratic(2,3,1))

print('x^2+x+1=0 的两个解是:',quadratic(1,1,1))








3\python 列表去重(数组)的几种方法



一、方法1



 代码如下 

ids = [1,2,3,3,4,2,3,4,5,6,1]

news_ids = []

for id in ids:

    if id not in news_ids:

        news_ids.append(id)

print news_ids



思路看起来比较清晰简单 ,也可以保持之前的排列顺序。



二、方法2



通过set方法进行处理

 

ids = [1,4,3,3,4,2,3,4,5,6,1]

ids = list(set(ids))



处理起来比较简单,使用了集合方法set进行处理,不过结果不会保留之前的顺序。



三、方法3



利用lambda匿名函数和 reduce 函数处理



 代码如下 复制代码

ids = [1,4,3,3,4,2,3,4,5,6,1]

func = lambda x,y:x if y in x else x + [y]

reduce(func, [[], ] + ids)

四、方法4



使用itertools模块



 代码如下 复制代码

import itertools

ids = [1,4,3,3,4,2,3,4,5,6,1]

ids.sort()

it = itertools.groupby(ids)

for k, g in it:

    print k



五、无法保持原有顺序



 代码如下 复制代码

liebiao=set(liebiao)



六、while遍历去重



 代码如下 复制代码

def delRepeat(liebiao):

 for x in liebiao:

  while liebiao.count(x)>1:

   del liebiao[liebiao.index(x)]

 return liebiao





发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容