python学习第三天

一些例子讲述一些概念

1.+=对于变量相当于相加再赋值操作,对于列表相当于执行extend方法

#定义全局变量
gl_num=10
gl_test_list=[1,2,3]
def demo(num,test_list):
    print("函数开始")
    #对数字和列表实施+=操作
    num+=num
    test_list+=test_list
    print("num=%d" %num)
    print(test_list)
demo(gl_num,gl_test_list)
print("函数结束")
#输出函数执行后的数字和列表
print("num=%d"%gl_num)
print(gl_test_list)

输出结果为:

函数开始
num=20
[1, 2, 3, 1, 2, 3]
函数结束
num=10
[1, 2, 3, 1, 2, 3]

注意:若传递参数是可变类型(字典、列表),若在函数内部使用方法改变了数据内容,同样会影响到外部数据。
2.使用函数时,若要返回一个函数值,直接return 变量;若要返回多个数值,则要使用元组,其中在使用return时()可以省略

def measure():
    print("开始测量。。。")
    temp=39
    witness=50
    print("测量结束。。。")
    return (temp,witness)
result=measure()
print(result)
gl_temp,gl_witness=measure()
print(gl_temp )
print(gl_witness)

输出结果为:

开始测量。。。
测量结束。。。
(39, 50)
开始测量。。。
测量结束。。。
39
50

注意:返回多个内容最好使用不同变量接收,以便以后调用
3.制定函数的缺省参数

def print_info(name,gender=True):
    gender_text="boy"
    if not gender:
        gender_text="girl"
    print("%s is %s" %(name,gender_text))
print_info("xiaoming")
print_info("xiaoli",False)

输出结果:

xiaoming is boy
xiaoli is girl

注意:应选定数量多的值为默认值,当存在不同值时不应该设置缺省值。设定缺省值时在参数后使用赋值语句,可指定参数的缺省值
4.多值参数
一个函数接受不确定数目的参数

def demo(num,*nums,**person):
    print(num)
    print(nums)
    print(person)
demo(1,2,3,4,name="xiaohong")

输出结果为:

1
(2, 3, 4)
{'name': 'xiaohong'}

注意输入的格式
元组和字典的拆包

def demo(*args,**kwargs):
    print(args)
    print(kwargs)
gl_args = [1,2,3,4]
gl_kwargs = {"name":"xiao","age":18}
#在调用函数时,元组实参前添加*,字典实参前添加**
demo(*gl_args,**gl_kwargs)

输出结果:

(1, 2, 3, 4)
{'name': 'xiao', 'age': 18}

5.递归函数:自己调用自己,内部代码相同,只是参数不同,当参数满足某一条件时,函数不再执行。

def sum_numbers(num):
    print(num)
    if num == 1:
        return
    sum_numbers(num-1)
sum_numbers(3)

输出结果:

3
2
1

面向对象OOP

过程是对一段功能独立代码进行封装,只负责执行,不返回结果。
函数不仅能执行,还可以返回结果
面向对象相比较面向过程是一个更大的封装,不仅把功能独立的代码封装到方法中,而且要将多个方法封装到对象中,侧重谁来做。
1.类:对于具有相同行为或者特征的事物的统称,用于创建对象,不能直接使用。
2.对象:由类创造的一个具体存在。
类只需要有一个,对象可以有很多个,不同对象属性可以不同。
3.创建类三要素:
(1)类名(大驼峰法:单词首字母大写,字母之间不需要加下划线)
(2)类包含的属性:即这类事物具有的特征
(3)类包含的方法:即这类事物具有的行为

面向对象语法

1.dir()函数
2.定义类:

class 类名:
    def方法一(self,参数列表):
        pass
    def方法一(self,参数列表) :

创建对象
对象变量=类名()
1.class Cat: def eat(self): #哪一个对象调用的方法,self就是对哪一个对象的引用 #使用self在方法内输出小猫名字 print("%s爱吃鱼"%self.name) def drink(self): print("%s要喝水"%self.name) #创建猫对象 tom = Cat() #可以使用.属性名,利用赋值语句 tom.name="汤姆" tom.eat() tom.drink() print(tom) lazy_cat = Cat() lazy_cat.name = "lili" lazy_cat.eat() lazy_cat.drink() print(lazy_cat)
输出结果:

汤姆爱吃鱼
汤姆要喝水
<__main__.Cat object at 0x0000017A9B84A278>
lili爱吃鱼
lili要喝水
<__main__.Cat object at 0x0000017A9B84A2B0>

初始化方法:__init__指定类中包含哪些属性
定义属性:self.属性名 = 属性的初始值

class Dog:
    #增加形参,把对象特有属性以参数形式传递到初始化方法内部
    def __init__(self,new_name):
        self.name =new_name
    def eat(self):
        print("%s like eatting kelocoin"%self.name)
dog = Dog("haha")
dog.eat()
lazy_dog = Dog("dalanmao")
print("狗狗名字是 %s" %dog.name)
print("大懒猫名字是:%s"% lazy_dog.name)

输出结果:

haha like eatting kelocoin
狗狗名字是 haha
大懒猫名字是:dalanmao

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值