美文网首页
Python基础二「条件,循环语句,函数,面对对象,异常处理」

Python基础二「条件,循环语句,函数,面对对象,异常处理」

作者: 唐_夏影 | 来源:发表于2018-11-04 15:24 被阅读19次

python在实际开发中能进行的有大数据,爬虫,人工智能和后端Web开发

这一小节相关代码已经上到到仓库的python2文件夹

条件语句,循环语句

  • if语句

我们初始化变量a,判断如果a的值是1,就输出a的值是1,如果a的值是2,输出a的值是2,其他同理,如果a的值不在1,2,3之内,输出a的值是其他的数

'''
if语句
'''
a = 3
if a == 1:
    print("a的值是1")
elif a == 2:
    print("a的值是2")
elif a == 3:
    print("a的值是3")
else:
    print("a的值不是1,2,3")

当然,我们也可以使用if来判断数值的范围,真假

#判断范围
if a > 2:
    print("a>2")
#判断真假
b=True
if b:
    print("true")
else:
    print("false")

注意了,上面代码的print语句至少要和判断语句之间有一个缩进,在win上可以使用tab键来打一个缩进

  • while

我们可以使用while语句来进行一些循环操作

a = 1
while a < =6:
    print(a)
    a = a + 1

声明一个变量a,如果a小于6,就继续循环,我们在每次循环都加1,所以在第7次循环时,a的值就成为7,跳出了循环,输出为1,2,3,4,5,6,7

上面讲到,python区分范围,不像其他语言一样使用{}来划地盘,而是使用缩进来表示的,我们来看下面的图片

缩进.png

因为python是以缩进来区分一个作用域的范围的,print语句和a+=1语句前面有缩进,python就认为它是while循环语句里面的,而到了print,已经没有缩进了,python就认为while语句已经结束,所以上面while循环的整个范围就是上面的红框

那如果我们暂时不知道while循环里面要做什么,可以不写代码吗?

是不行的,如果你写了:下面却什么一行缩进的代码都没有,是会报错的,这时候我们可以用pass来占位

a=1
while a<=3:
    print("语句1")
    a+=1
print("语句2")

while a<=3:
    #这里我还想好要写什么,先用pass占个位
    pass
  • for循环
'''
for循环
'''
for i in range(1,6):
    print(i,end=',')

使用for循环输出1到6,range函数的作用是生成范围1...到6之间的数列,end的作用是让输出不换行,以,结尾

输出结果:

1,2,3,4,5

上一小节我们学习了列表,现在我们来看一下怎么使用循环语句来遍历我们的列表

#遍历列表
list=['a','b','c','d','e','f']
for i in list:
    print('当前的列表元素为:',i)

或者我们也可以通过获得列表的长度,通过列表下标遍历列表

print()
# 根据列表下标遍历列表
list2 = ['a', 'b', 'c', 'd', 'e', 'f']
for index in range(len(list2)):
    print('当前列表的元素为:', list[index])

接下来看看怎么遍历字典的值

# 遍历字典
dict = {'a': 'A', 'b': 'B', 'c': 'C'}
for key,value in dict.items():
print('字典的键是:',key,'值是',value)

函数,面向对象,异常处理

  • 函数

pyhton的函数标识符是def,这里我们新建一个.py文件,看一下函数的简单使用

#声明函数
def getData():
    print("获取数据")

#使用函数
getData()

注意在同一个.py文件里面,函数的调用要在函数的声明之后,也就是说要先在前面写好函数再去调用,如以下代码就是错误的

'''
    函数调用在函数声明之前,这样是不行的
'''
#使用函数
getData()

#声明函数
def getData():
    print("获取数据")

再看看函数怎么传参

# 函数传参
def getData(s):
    print(s)

getData("你好,世界")

最终在控制台,我们输出了你好,世界,这个字符串。

然后是带返回值的函数

# 函数返回值
def getData(s):
    return s

a=getData("你好,世界")
print(a)
  • 面向对象

创建一个具有姓名,年龄属性的学生类

# 创建学生类
class Student:
    # 类文档字符串,作用是帮助说明,解释该类的作用和意义
    '这是一个学生对象'

    # 类构造方法,用来给类的属性进行初始化赋值,self表示类的实例
    def __init__(self, name, age):
        self.name = name
        self.age = age

    #通过getData函数,输出学生类的信息,self.name,表示调用该类对象的name属性
    def getData(self):
        print("学生的姓名是:", self.name, "学生的年龄是:", self.age)


stu = Student("tonjies", "20")
stu.getData()

打印控制台,可以得到字符串:学生的姓名是: tonjies 学生的年龄是: 20

当然我们也可以创建多个类对象

# 创建学生类
class Student:
    # 类文档字符串,作用是帮助说明,解释该类的作用和意义
    '这是一个学生对象'

    # 类构造方法,用来给类的属性进行初始化赋值,self表示类的实例
    def __init__(self, name, age):
        self.name = name
        self.age = age

    #通过getData函数,输出学生类的信息,self.name,表示调用该类对象的name属性
    def getData(self):
        print("学生的姓名是:", self.name, "学生的年龄是:", self.age)


stu = Student("tonjies", "20")
stu.getData()

stu2=Student("xiaoMin","18")
stu2.getData()

接下来我们来看看类的继承是如何实现的,我们创建一个教室类,并让学生继承于教师类

# 创建教师类
class Teacher:
    def study(self):
        print("不断学习")


# 创建学生类,(Teacher)表示该学生类的父类是教师类
class Student(Teacher):
    # 类文档字符串,作用是帮助说明,解释该类的作用和意义
    '这是一个学生对象'

    # 类构造方法,用来给类的属性进行初始化赋值,self表示类的实例
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 通过getData函数,输出学生类的信息,self.name,表示调用该类对象的name属性
    def getData(self):
        print("学生的姓名是:", self.name, "学生的年龄是:", self.age)


# 接下来实例化学生类对象
stu = Student("tonjies", "20")
# 用学生类,也就是子类,去调用父类教师类的方法
stu.study()
# 调用自身的方法
stu.getData()

控制台打印出来:不断学习,并且调用study方法也没有报错,说明我们子类继承于父类成功,并且子类能调用户的方法

那我们要是再子类写一个和父类函数名相同的函数,再使用子类对象去调用这个名字的方法会怎么样呢,如果是这样的话,相当于子类重写了父类得方法,那么我们就不会去调用父类的方法,而是直接使用子类自己重写的方法

# 创建教师类
class Teacher:
    def study(self):
        print("不断学习")


# 创建学生类,(Teacher)表示该学生类的父类是教师类
class Student(Teacher):
    # 类文档字符串,作用是帮助说明,解释该类的作用和意义
    '这是一个学生对象'

    # 类构造方法,用来给类的属性进行初始化赋值,self表示类的实例
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 通过getData函数,输出学生类的信息,self.name,表示调用该类对象的name属性
    def getData(self):
        print("学生的姓名是:", self.name, "学生的年龄是:", self.age)

    #重写父类的方法
    def study(self):
        print("学生在不断学习")


# 接下来实例化学生类对象
stu = Student("tonjies", "20")
# 用学生类,也就是子类,去调用父类教师类的方法
stu.study()
# 调用自身的方法
stu.getData()

这样的话,我们打印出来的,就不是父类的不断学习了,而是学生在不断学习

我们的python和Java等语言不一样,它是支持类多继承的,一个子类可以继承于多个父类,如下代码

# 创建教师类
class Teacher:
    def study(self):
        print("不断学习")

# 常见父母亲类
class Parent:
    pass

# 创建学生类,(Teacher)表示该学生类的父类是教师类
class Student(Teacher,Parent):
    # 类文档字符串,作用是帮助说明,解释该类的作用和意义
    '这是一个学生对象'

    # 类构造方法,用来给类的属性进行初始化赋值,self表示类的实例
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 通过getData函数,输出学生类的信息,self.name,表示调用该类对象的name属性
    def getData(self):
        print("学生的姓名是:", self.name, "学生的年龄是:", self.age)

    #重写父类的方法
    def study(self):
        print("学生在不断学习")


# 接下来实例化学生类对象
stu = Student("tonjies", "20")
# 用学生类,也就是子类,去调用父类教师类的方法
stu.study()
# 调用自身的方法
stu.getData()

我们只要在()里面,用,把不同的父类分开就可以了

这里要注意的是,上面说到的父类和函数一样,在同一个文件中,必须写在子类前面,也就是先”声明“,后使用

  • 异常处理

预防程序出现某个错误,提前做好防范措施,如我们如何用数去除以0,而分母是不能为0的,那么程序就会报ZeroDivisionError异常

a=1/0
#不能直接输出,会报错
print(a)

那我们就可以给程序加个异常捕获,防止程序出现异常

#进行异常捕获
try:
    a=1/0
except ZeroDivisionError:
    print("程序出现了异常,分母不能为0")

这样我们运行程序后,发现程序不会因为出现错误而终止运行,打印出了字符串程序出现了异常,分母不能为0

其中except后面根据不同的异常可以填入不同的异常名字,详细可以参考官方文档

如果我们嫌麻烦,而有不需要进行多个异常的捕获的话,可以直接使用Exception来进行异常的捕获

#进行异常捕获
try:
    a=1/0
except Exception:
    print("程序出现了异常,分母不能为0")

如果你喜欢本篇文章,希望能给我一个喜欢,这对我来说是很好的鼓励

句子控

如果你改变不了世界

就改变自己

改变不了环境,就去适应环境

好人就是这么堕落的,奴性就是这练成的

这句话就一个道理

如果你掉到粪坑了,就安心的吃屎吧

相关文章

网友评论

      本文标题:Python基础二「条件,循环语句,函数,面对对象,异常处理」

      本文链接:https://www.haomeiwen.com/subject/hgnrxqtx.html