WenRou's Blog

新浪微薄腾讯微薄

最新碎语:测试图片碎语哦

您的位置:WenRou's Blog >Python> python第十一天:函数

python第十一天:函数

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


---

转载请注明本文标题和链接:《python第十一天:函数

分享到:

发表评论

16 + 2 =
路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交