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()。
笔者整理到这,有些例子是参照菜鸟教程的,