1.python的缩进格式
与传统的C语言不同,python虽然没有了用分号和括号来分隔程序段的方式,但是却使用了较为严格的缩进制度来区分函数内部与外部的关系,而缩进代码的方式有两种:第一种方式为使用Tab键直接缩进代码,第二种缩进方式就要注意缩进的位数了,因为使用空格键缩进时经常会出现缩进多了一格或者缩进少了一格的现象,使用空格键缩进的朋友们请牢记4个空格为一个缩进单元!当我们想使用循环语句或者if等语句时,如果我们的代码缩方式进不合理,程序就会报错导致整个程序中断无法运行。
1.正确的代码缩进4个空格
list=['a',1,'编程','v',6]
for i in list:
print(i)
----------------------------
输出结果:
a
1
编程
v
6
Process finished with exit code 0
============================================
2.使用5个空格缩进
list=['a',1,'编程','v',6]
for i in list:
print(i)
--------------------------------------------------
输出结果:
TabError: inconsistent use of tabs and spaces in indentation
结果说明我们不当的使用了tab和空格键。
Process finished with exit code 1
===========================================
3.使用3个空格缩进
list=['a',1,'编程','v',6]
for i in list:
print(i)
--------------------------------
输出结果:
输出结果:
TabError: inconsistent use of tabs and spaces in indentation
结果说明我们不当的使用了tab和空格键。
Process finished with exit code 1
2.定义函数(def)
学习定义函数首先要明白的第一点是:在自己定义的函数里面的东西包括赋值的变量,字符的类型,或者是计算的结果等等都是属于局部的定义,它不能改变全局中已经存在的东西或者在全局中被使用例如:
1.如果我们先定义一个变量b=233,然后定义一个函数将b打印出来,程序运行到这里是没有任何问题的,但是如果我们直接在该函数内部给变量b赋值,就会发现程序运行失败,系统报错了。
1.直接打印b
b=233
def print_1():
print(b)
a=print_1()
------------------------
输出结果:
233
Process finished with exit code 0
===========================================
2.函数内部赋值
b=233
def print_1():
print(b)
b=111
a=print_1()
--------------------------
输出结果:
UnboundLocalError: local variable 'b' referenced before assignment
Process finished with exit code 1
错误说明:赋值前引用了局部变量“b”
2.我们接着第一步操作,如果在定义的函数中定义一个变量c=100,然后我们在函数外打印它看会有什么结果:
b=233
def print_1():
print(b)
c=100
a=print_1()
print(c)
-----------------------
输出结果:
NameError: name 'c' is not defined
Process finished with exit code 1
错误说明:未定义名称“c”
从输出的结果可以看出在函数内部定义的变量,就算事先调用了该函数在函数外部也没有办法直接使用定义了的变量。
那如果我们非要在函数内部重新定义函数外部已经定义了的变量,非要在函数外部使用函数内部定义好了的变量呢?
这样做也不是不行,只不过需要事先在函数内部提前申明:我赋值或者是定义的变量是全局变量哦,希望在全局中使用呢。
该申明的代码形式就是在函数内部使用全局变量前加入代码global 变量,就可以修改或者定义全局变量了。
1.在自己定义的函数内重新给全局变量赋值
b=233
def print_1():
global b
print(b)
b=111
a=print_1()
print(b)
---------------------------------------
输出结果:
233
111
Process finished with exit code 0
==========================================
2.在函数外部使用自己在函数内定义的变量
b=233
def print_1():
print(b)
global c
c=100
a=print_1()
print(c)
-----------------------------------------
输出结果:
233
100
Process finished with exit code 0
从输出结果中可以看出,我们成功的达到了自己想要的效果,这就是局部变量变成全局变量的方法。
3.类(class)和对象
不知道大家有没有看过那些程序员大牛写的代码,有没有发现他们在定义了一个class类后,总会在接下来定义一个像__init__这样子的函数。
其实呢这个__init__就是一个特殊的方法,它的作用是当类class里面包含了这个__init__后,只要我们在创建类的实例时,__init__就会默认的运行,运行的结果是初始化那些已经实例了的对象,让那些对象初始化一遍。
就拿动物类来举例吧,我们先创建一个动物的类,然后就初始化定义的类(init),在初始化定义的括号里第一个参数一般是self,它的作用是返回实例本身,当然啦返回实例本身不一定要用self,你也可以使用my或者是me,甚至用a来代替也不是不可以,这样的话在定义初始化函数的内部你也要使用a.来表示返回实例本身了,因为要保持数据的一致性。但是这样的话你自己或者别人之后阅读你的代码时,会增加阅读的难度,这里给你的建议是还是使用大部分程序员默认使用的self会比较好,第二三四个参数就是自己随意设置的了,self后面你想用几个参数就用几个参数,只要能把你要定义的类的属性给表达完整即可:
class Animal():
def __init__(self,types,shouts,name):
self.types=types
self.shouts=shouts
self.name=name
对于动物呢我觉得只要能准确定位这三类,就能够成功的找到你想要找到的那只动物了。因为通过类别你就可以知道你要找的是狗啊,还是猫啊,还是老鼠啊,或者是其他什么类型的,这就初步的缩小了范围。然后就可以通过叫声来进行寻找了,就比如猫吧:布偶猫,英短猫,田园猫,波斯猫等等,这些不同种类的猫叫声应该是不一样的,这样又进一步的缩小了范围。最后就是名字了动物的名字都是人类赋予的,一般情况下每一只动物的名字都是不同的,只要通过名字就能够顺利的找到你想要找的那只猫。当然啦如果名字大众化的话也不是太好找的比如叫招财的猫就不知凡几了。
下面我们来寻找,然后把动物打印出来吧:
def find_1(self):
print("动物的种类是%s,叫声是%s,它的名字是%s"%(self.types,self.shouts,self.name))
我们来找两只动物实践一下吧,第一只我们找叫做睡美人的波斯猫。第二只我们找小猪佩奇。
cat=Animal('猫','波斯猫叫','睡美人')
cat.find_1()
pig=Animal('猪','小猪叫','佩奇')
pig.find_1()
--------------------------------------------------
动物的种类是猫,叫声是波斯猫叫,它的名字是睡美人
动物的种类是猪,叫声是小猪叫,它的名字是佩奇
Process finished with exit code 0
成功找到!你学会了吗?
欢迎大家观看,喜欢的话请关注我的大鱼号:天棚漏雨