Python基础知识从hello world 开始(第四天完结)

休息一天,继续干


一. 函数里的变量

这里分成了全局变量和局部变量

有java基础过的比较快

全局变量就是在这个类里面都可以使用

局部变量就是只可以在一个函数里面使用


 1.1局部变量

# 局部变量的使用
def jubu():
    a = 1
print(a)

 像这个样子的使用,代码就会报错

 这里在函数里面定义的a只可以在函数里面使用

如果想要使用全局,需要定义全局变量


 1.2全局变量

上面的问题出现之后那我们定义一个都可以使用的变量就可以解决

a = 1

# 局部变量的使用
def jubu():
    print(f'函数里面的{a}')
print(a)
jubu()

 


 1.3修改全局变量

在函数里面赋值a=200

那么默认就是定义了一个局部变量是200

那么我们认识一下一个新的函数global 

先声明我要操作的a是一个全局变量

# 修改全局变量
a = 100

def testA1():
    print(a)


def testA2():
    global a
    a = 200
    print(a)

testA1()
testA2()
print(f'全局变量里面的{a}')

 使用前后对比


 1.4函数返回值的使用

这里的返回值和java的一样

def retuA1():
    return 100

a = retuA1()

print(a)

 


 1.5函数多返回值

返回元组什么的

def retuA1():
    return 100,200

a = retuA1()
print(a)

 


1.6函数传参

和java没有什么区别

def qwe(name,age,xb):
    print(f'名字是{name}++年龄是{age}++性别是{xb}')

qwe('懒懒的代码人',20,'男')

 

 这里还可以使用关键字参数传值就是采用键值对

java里面没有用过,感觉鸡肋。

效果一样

def qwe(name,age,xb):
    print(f'名字是{name}++年龄是{age}++性别是{xb}')

qwe(name='懒懒的代码人',age=20,xb='男')

 1.7缺省参数


在我的理解就是给函数里面的一个变量赋了一个默认值,用户可以填写可以不填

def qwe(name,age,xb='男'):
    print(f'名字是{name}++年龄是{age}++性别是{xb}')

qwe(name='懒懒的代码人',age=20)

 1.8不定长参数

就是用户想穿多少数据都可以,整合程元组

def noLen(*ages):
    print(ages)
noLen('asd',234)


 二.简单了解引用

在python中值都是靠应用来传递

id函数读出这个变量在内存中的位置

def noLen(*ages):
    print(id(ages))
    print(ages)
noLen('asd',234)

 如下图,两个变量地址一样,那么可以理解为这两个变量a,b都是一个值那就是1

只是名字不一样。


 三.了解递归

是一种编程思想

递归特点:

1自己调用自己

2必须要有出口

def digui(num):
#     判断是不是1是就直接给程序出口
    if num==1:
        return  1
    return num + digui(num-1)

qwe = digui(3)

print(qwe)

 

 


 四.了解lambda

 lambda表达式就是简化代码的,简化的是什么代码呐

就是一个函数只有一个返回值,没有其他操作的代码。

fn1 = lambda :100

print(fn1())


五.高阶函数

一个是-10转换成10

一个是四四舍五入

不知道是不是我的版本问题我这里使用不了


 六.面向对象

1.定义类和对象

这里让我惊讶的居然是它使用了class

class xiYiJI():
    def xiYiFu(self):
        print('洗衣服了')
    def shuaiGan(self):
        print('甩干了')

xiYiJIs = xiYiJI();

xiYiJIs.xiYiFu

 


 1.2类里面的self

 我理解都大概意思是只要出现了这个self就证明这个是可以使用的函数。也就是java里面的方法

self可以制作函数初识值


2.--init--函数的使用

设置初始换

class xiYiJI():
    def __init__(self):
        self.width =500

    def xiYiFu(self):
        print(f'洗衣服了洗衣机宽度{self.width}')
    def shuaiGan(self):
        print('甩干了')

xiYiJIs = xiYiJI();

xiYiJIs.xiYiFu()

3--str--函数使用

定义一个对象,直击打印对象会是这个对象在地址的位置。

写了这个打印就是打印你返回的内容

 

class xiYiJI():
    def __init__(self):
        self.width =500
    def __str__(self):
        return '说明书'

    def xiYiFu(self):
        print(f'洗衣服了洗衣机宽度{self.width}')
    def shuaiGan(self):
        print('甩干了')

xiYiJIs = xiYiJI();

print(xiYiJIs)

 

​​​​​​​


 

 七.继承

继承比较简单

 1.单继承

Python在这个括号里面直接写。就可以直接实现单继承

class A():
    def __str__(self):
        return 'a的返回值'

    def a1(self):
        print('A的方法')

class B(A):
    pass

B1 = B()

B1.a1()

2.多继承

多继承也简单在括号里面继续写

class A():
    def __str__(self):
        return 'a的返回值'

    def a1(self):
        print('A的方法')

class A2():
    def __str__(self):
        return 'a2的返回值'

    def a2(self):
        print('A2的方法')

class B(A,A2):
    pass

B1 = B()

B1.a1()
B1.a2()

 


 3.方法重写

简简单单

class A():
    def __str__(self):
        return 'a的返回值'

    def a1(self):
        print('A的方法')

class A2():
    def __str__(self):
        return 'a2的返回值'

    def a2(self):
        print('A2的方法')

class B(A,A2):
    def a1(self):
        print('重写')
    pass

B1 = B()

B1.a1()
B1.a2()

 

 


七.异常

和java一模一样

 1.捕获异常

try:
    print(11231())
except:
    print('出现异常')

 


2.else

try:
    print()
except:
    print('出现异常')
else:
    print('马有异常')
​​​​​​​

 没有异常是执行

 

 


3.有异常也执行 

try:
    print(asdasd)
except:
    print('出现异常')
else:
    print('马有异常')
finally:
    print('有异常也执行')

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值