美文网首页
python入门笔记04

python入门笔记04

作者: 9efb9af6eebe | 来源:发表于2019-12-17 18:06 被阅读0次

    while循环

    while 判断语句:
    语句

    实例:

    n = 100
     
    sum = 0
    counter = 1
    while counter <= n:#条件为false是跳出
        sum = sum + counter
        counter += 1
     
    print("1 到 %d 之和为: %d" % (n,sum))
    
    

    写一个无限循环:

    var = 1
    while var == 1 :  # 表达式永远为 true
       print('梦妍大佬你好!')
     
    print ("Good bye!")
    

    while & else

    count = 0
    while count < 5:
       print (count, " 小于 5")
       count = count + 1
    else:
       print (count, " 大于或等于 5")
    

    for语句

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    for <variable> in <sequence>:
        <statements>
    else:
        <statements>
    

    实例:

    tester = ['myl', 'lnc', 'xg', 'zzl', 'qfl']
    for x in tester:
        print(x)
    

    使用break跳出循环

    tester = ['myl', 'lnc', 'xg', 'zzl', 'qfl']
    list = []
    for name in tester:
        list.append(name)
        if name == 'xg':
            break
    else:
        print('员工列表为空')
    print('the old tester:',list)
    print('完成循环')
    

    循环到zzl之后就跳出循环

    break和continue语句及循环中的else子句

    break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 实例如下:

    tester = ['myl', 'lnc', 'xg', 'qfl', 'zzl']
    for name in tester:
        if name == 'myl':
            break
        print('大佬为:',name)
        
        
    tester = ['myl', 'lnc', 'xg', 'qfl', 'zzl']
    t = 0
    while t < len(tester):
        print(t)
        if tester[t] == 'lnc':
    
            print('大佬为',tester[t])
            break
        t = t + 1
    print('bye')
        
    

    continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

    tester = ['myl', 'lnc', 'xg', 'zzl', 'qfl']
    for name in tester:
        if name == 'qfl':
            continue
        print('tester中的大佬为:',name)
    
        
    

    pass语句

    Python pass是空语句,是为了保持程序结构的完整性。

    pass 不做任何事情,一般用做占位语句,如下实例

    for letter in 'Runoob': 
       if letter == 'o':
          pass
          print ('执行 pass 块')
       print ('当前字母 :', letter)
     
    print ("Good bye!")
    

    Pyhon3 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

    定义一个函数

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
    • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

    语法

    def 函数名(参数列表):
        函数体
    

    实例:

    def hello():
        print('Hello World')
    

    复杂点的:

    def cha(w, h):
        return w- h
    l, f =4, 5
    print(cha(w,h))#按顺序
    print(cha(h=5,w=4))#指定
    
    def printinfo( name, age = 35 ):
       "打印任何传入的字符串"
       print ("名字: ", name)
       print ("年龄: ", age)
       return
     
    #调用printinfo函数
    printinfo( age=24, name="lqf" )
    print ("------------------------")
    #不传age,则使用定义时的默认值35
    printinfo( name="lqf" )
    
    

    不定长参数

    加了星号(*)的变量名会存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。如下实例:

    def printinfo( arg1, *vartuple ):
       "打印任何传入的参数"
      
       print ("输出:,"arg1)
       for var in vartuple:
          print (var)
       return
     
    # 调用printinfo 函数
    printinfo( 10 )
    printinfo( 70, 60, 50 )
    

    作用域

    total = 0 # 这是一个全局变量
    # 可写函数说明
    def sum( arg1, arg2 ):
        #返回2个参数的和."
        total = arg1 + arg2 # total在这里是局部变量.
        print ("函数内是局部变量 : ", total)
        return total
    
    #调用sum函数
    sum( 10, 20 )
    print ("函数外是全局变量 : ", total)
    

    面向对象

    在python中,所有数据类型都可以视为对象,当然也可以自定义对象,自定义对象数据类型就是面向对象中的类(class)的概念;
    student(有name,score)这种数据类型应该被视为一个对象,这个对象拥有name和score这两个属性,如果要打印一个学生的成绩,首先要创建出这个学生对应的对象,然后给对象发一个print_score消息,让对象自己把自己的数据打印出来。

    class Student():
        def __init__(self,name,score):
            self.name = name
            self.score = score
        def print_score(self):
            print('%s: %s' % (self.name,self.score))
    
    lqf = Student('luoqingfu',59)
    lqf.print_score()
    

    类(Class)和实例

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

    仍以Student类为例,在Python中,定义类是通过class关键字:

    class Student(object):
        pass
    

    class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。
    定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现的:

    lqf = Student()
    

    由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的init方法,在创建实例的时候,就把name,score等属性绑上去:

    class Student(object):
        def __init__(self, name, score):
            self.name = name
            self.score = score
    

    注意到init方法的第一个参数永远是self,表示创建的实例本身,因此,在init方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

    继承和多态

    在面向对象的程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

    比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印:

    class Animal(object):
        def run(self):
            print('Animal is running...')
    

    当我们需要编写Dog和Cat类是,就可以从animal类中继承

    class Dog(Animal):
        pass
    
    class Cat(Animal):
        pass
    

    对于Dog来说,Animal就是它的父类,对于Animal来说,Dog就是它的子类。Cat和Dog类似。

    继承有什么好处?最大的好处是子类获得了父类的全部功能。由于Animial实现了run()方法,因此,Dog和Cat作为它的子类,什么事也没干,就自动拥有了run()方法:

    dog = Dog()
    dog.run()
    
    cat = Cat()
    cat.run()
    
    #结果
    Animal is running...
    Animal is running...
    

    继承的第二个好处需要我们对代码做一点改进。你看到了,无论是Dog还是Cat,它们run()的时候,显示的都是Animal is running...,符合逻辑的做法是分别显示Dog is running...和Cat is running...,因此,对Dog和Cat类改进如下:

    class Dog(Animal):
    
        def run(self):
            print('Dog is running...')
    
    class Cat(Animal):
    
        def run(self):
            print('Cat is running...')
    
    #结果
    Dog is running...
    Cat is running...
    

    当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run()。
    笔者整理到这,有些例子是参照菜鸟教程的,

    相关文章

      网友评论

          本文标题:python入门笔记04

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