python入门笔记04

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  in :
    
else:
    

实例:

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)