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第十一天:函数》
发表评论