python学习实例(3)

#===================================
#3.4 关于Python的函数调用
#===================================

#+++++++++++++++++++++++++++++++++++
#3.4.2 Python函数入门
#+++++++++++++++++++++++++++++++++++

#<程序:计算4+3*22>
#函数f
def  f(x, y):
    return x*y*y

#主函数部分
c=4+f(3, 2)
print (c)


#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#3.4.3 局部变量(Local variables)与全局变量(Global variables)
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#<程序:打印局部变量a和全局变量a>
a=10		#函数外
def func():
    a=20    #函数内,局部变量的赋值,不会改变全局变量。
    print(a)  #函数内
func()
print(a)   #函数外的a



#<程序:关键字global引用全局变量>
a=10
def func():
    global  a    #宣告这个是全局变量。
    a=20
    print(a)
func()
print(a)



#<程序:a, b, c是否为局部变量?>
b,c=2,4
def g_func():
    a=b*c		#a是局部变量
    d=a		#d是局部变量,其他都是全局变量。
    print(a,d)
g_func()
print(b,c)



#练习题3.4.1

b, c=2, 4
def g_func(d):
    global a
    a=d*c
g_func(b)
print(a)



#练习题3.4.2

a=10
def func():
    x=a
    print(x)
func()
print(a)



#练习题3.4.3

a=10           
def func(b):
    c=a+b
    print(c)
func(1)



#<程序:四则运算例子>
def do_div(a, b):
    c=a//b               #a, b, c都是do_div()中的局部变量
    print (c)
    return c

def do_mul(a, b):
    global c
    c=a*b               #a, b是do_mul()的局部变量,c是全局变量
    print (c)
    return c

def do_sub(a, b):       
    c=a-b           		#a, b, c都是do_sub()中的局部变量
    c=do_mul(c, c)     
    c=do_div(c, 2)
    print (c)
    return c          

def do_add(a, b):      		#参数a和b是do_add()中的局部变量
    global c           
    c=a+b             	#全局变量c,修改了c的值
    c=do_sub(c, 1)      	#再次修改了全局变量c的值
    print (c)       
  
#所有函数外先执行:
a=3                   	#全局变量a
b=2                   	#全局变量b
c=1                   	#全局变量c
do_add(a, b)            	#全局变量a和b作为参数传递给do_add()
print (c)     				#全局变量c



#===================================
#3.5 函数调用过程的分析
#===================================

#+++++++++++++++++++++++++++++++++++
#3.5.2 函数调用时栈的管理
#+++++++++++++++++++++++++++++++++++
#<程序:因数分解>   Print all the prime factors (>=2) of x.  By Edwin Sha
import math			#为了要调用平方根函数,此函数在math包里
def factors(x):  		#找到x的因数
    y=int(math.sqrt(x))
    for i in range(2,y+1):		#检查从2 到 x的平方根是否为x的因数
        if (x %i ==0):                  #发现i是x的因数
            print("Factor:",i);
            factors(x//i)		#递归调用自己,参数变小是x//i
            break  		#跳出for循环
    else:  #假如离开循环正常,没有碰到break,就执行else内的print,x是质数
        print("Prime Factor:",x)
    print("局部变量:参数x:%d, 变量y:%d" %(x,y))
    return
factors(18)



 

  • 208
    点赞
  • 204
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔老大RabbitMQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值