python学习笔记1

01引用

def test(num):
    print("在函数内部%d对应的内存地址是%d "%(num,id(num)))
    pass
a=10
#数据地址的本质就是一个数字
#使用python内置函数id()返回对象的内存地址
print("a变量保存数据的内存地址为%d" %id(a))
#调用test函数,实际上传递的是实参保存数据的引用,而不是实参保存的数据
test(a)

02全局变量和局部变量

num=10
def demo():
    global num#global声明全局变量,可以在函数中修改全局变量

    num=99
    print("%d"%num)

def demo1():

    print("%d"%num)

demo()
demo1()
"""


#注意:开发时把所有全局变量定义在所有函数上方
#保证所有函数都可以访问到全局变量


g_num =10
def demo():
    print("%d" % g_num)
    print("%s"%title)
 #再定义一个全局变量
title="b"#注意title全局变量需要在函数上方,否则访问不到。
demo()

03多个返回值

def measure():
    """测量温度和湿度"""
    print("测量开始...")
    temp=39#温度
    wetness=50#湿度
    print("测量结束")
    return (temp,wetness)#元组可以包含多个数据,可以使用元组一次返回多个值
    #= return temp,wetness
#如果函数返回类型是元组,小括号可以省略

result=measure()
print(result)

###如果函数返回值是元组同时希望单独处理元组中的元素,可以使用多个变量一次接受函数的返回结果
#变量个数和元组中元素个数一致
gl_temp,gl_wetness=measure()
print(gl_temp)
print(gl_wetness)

04交换数字

a=6
b=100
#不使用中间值交换数字的解法如下:
"""
a=a+b
b=a-b
a=a-b
print(a)
print(b)
"""
#python专有解法如下:
a,b=(b,a)
print(a)
print(b)

05不可变和可变参数

def demo(num,numlist):
    print("函数内部的代码:")
    #在函数内部,针对参数使用赋值语句
    num=100#修改局部变量的引用,不会影响到外部变量的引用
    #numlist=[1,2,3]
    ##!!!在函数内如果使用方法修改了数据的内容,会影响到外部的数据
    numlist.append(9)#将9加入到元组中
    print(num,numlist)
    print("函数修改完成")

gl_num=99#全局变量
gl_numlist=[4,5,6]
print("未修改前的数据:")
print(gl_num,gl_numlist)
demo(gl_num,gl_numlist)
print(gl_num,gl_numlist)

06多值函数求和

#python中有两种多值参数:
# (1)参数名前加一个*可以接收元组(2)参数名前增加两个 *可以接收字典。
#使用多值参数求和
def sum_numbers(*args):
    num=0
    print(args)
    for n in args:
        num+=n
    return num
result=sum_numbers(1,2,3,4,5)
print(result)

#使用元组参数求和
def sum(agrs):
    num=0
    print(agrs)
    for n in agrs:
        num+=n
    return num
resulta=sum((1,2,3,4,5))#需要多加一个括号,不如多值参数方便

print(resulta)

07递归累计求和

#定义一个函数sum_numbers
#能够接收一个num的整数参数
#计算1+2+3...num的结果

def sum_numbers(num):

   #出口
    if num ==1:
        return 1
    #假设sum_numbers能够正确处理累加,再设计累加
    temp=sum_numbers(num-1)
    return num +temp

result=sum_numbers(3)
print(result)

08第一个面向对象

class Cat:
    def eat(self):
        print("%s爱吃鱼"% self.name)

    def drink(self):
         print("小猫要喝水")

tom=Cat()#新建对象tom
tom.name="Tom"
tom.eat()
tom.drink()
print(tom)
#打印对象的地址
#再创建一个猫对象
lazy_cat=Cat()
lazy_cat.name="大懒猫"
lazy_cat.eat()
lazy_cat.drink()
print(lazy_cat)#打印对象地址
lazy_cat2=lazy_cat
#print(lazy_cat2)#打印lazy_cat2对象的地址,和lazy_cat一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

站在风口的朱

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

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

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

打赏作者

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

抵扣说明:

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

余额充值