Python调用函数小例子
- 累加求和:1~num以内的累计和
可以使用 for循环,while循环,递归
num = int(input("请输入num的值:"))
def sum_1(): #for循环
sum = 0
for x in range(num+1):
sum +=x
print(sum)
def sum_2(num): #递归方法
if num>0:
return num+sum_2(num-1)
else:
return 0
def sum_3(num): #while循环
i=0
sum =0
while i<=num:
sum+=i
i+=1
return sum
print('1~num以内的累计和为:')
sum_1()
s=sum_2(num)
print(s)
s2 =sum_3(num)
print(s2)
- sum()函数接受一个list作为参数,并返回list所有元素之和。请计算1 * 1 + 2 * 2 + 3 * 3 + … + 100 * 100。
- range调用
print sum([n**2 for n in range(1,101)])
L = xrange(1, 101)
print sum([i*i for i in L])
- append
L = []
x = 1
N = 100
while x <= N:
L.append(x*x)
x=x+1
print sum(L)
- 一元二次方程的定义是:ax² + bx + c = 0
请编写一个函数,返回一元二次方程的两个解。
注意:Python的math包提供了sqrt()函数用于计算平方根。
- math.sqrt() (平方根)
import math
def quadratic_equation(a, b, c):
d=b**2-4*a*c
if d<0:
return "no real root"
else:
y1=(-b+math.sqrt(d))/(2*a)
y2=(-b-math.sqrt(d))/(2*a)
return y1,y2
print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)
- 汉诺塔 (http://baike.baidu.com/view/191666.htm) 的移动,对柱子编号为a, b, c,将所有圆盘从a移到c可以描述为:如果a只有一个圆盘,可以直接移动到c,如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。
请编写一个函数,给定输入 n, a, b, c,打印出移动的步骤:
move(n, a, b, c)
例如,输入 move(2, ‘A’, ‘B’, ‘C’),打印出:
A --> B
A --> C
B --> C
#-*- coding:utf-8 -*-
def move(n, x, y, z):
if n==1:
print x,'-->',z
return
move(n-1,x,z,y)#将前n-1个盘子从x移动到y上
move(1,x,y,z)#将最底下的最后一个盘子从x移动到z上
move(n-1,y,x,z)#将y上的n-1个盘子移动到z上
move(4, 'A', 'B', 'C')