# -*- coding: utf-8 -*-
"""
Created on Sun Jun 9 18:28:30 2019
@author: cheng
"""
###三大结构
- 分支
if 条件表达式::
语句1
语句2
语句3
......
- 条件表达式就是计算结果必须为布尔值的表达式
- 表达式后面的冒号不能少
- 注意if后面的出现的语句,如果属于if语句块,则必须同一锁紧等级
- 条件表达式结果为True执行if后面的缩进语句
-if语句练习
-如果小于60分,叫家长
s = 55
if s < 60:
print('叫家长')
s = 75
if s < 60:
print('叫家长')
print('恭喜')
####双向分支
- if ...else ...语句
if 条件表达式:
语句1
语句2
else:
语句1
语句2
-双向分支有2个分支,一定会执行其中的一个,仅一个
g = input("请输入性别:")
print("你输入的性别是:{0}".format(g))
if g =='man':
print('敲代码')
else:
print('发糖')
print('上课')
####多路分支
if 条件表达式:
语句1
elif 条件表达式:
语句1
elif 条件表达式:
语句1
-学生成绩
s = input('学生成绩:')
s = int(s)
if s >= 90:
print('A')
elif s>=80 and s <90:
print('B')
elif s < 80:
print('C')
#### 循环语句
-for循环
for 变量 in 序列::
语句1
语句2
- 列表就是一列数字或者其他值
for i in range(0,9):
if i <=5:
print(i)
else:
print("结束")
-for else语句
- for循环之break,contineu,pass
-break:无条件结束整个循环
-continue:无条件结束本次循环,重新进入下一轮
-pass:表示路过
-在1-10的中,如果等于8,则输出
for i in range(1,11):
if i == 8:
print('找到了')
break
else:
print(i)
-在1-10中,找出偶数并打印
for i in range(1,11):
if i % 2 ==1:
continue
else:
print("{0} 是偶数".format(i))
for i in range(1,11):
if i % 2 ==0:
print("{0} 是偶数".format(i))
-pass占位
for i in range(1,11):
pass
####while循环
-表示当前条件成立的时候就循环
-不知道循环次数
-while语法:
while 条件表达式::
语句块
# 如果说年利率是6.7%,本利是每年翻滚,多少年会翻倍
b = 10000
year = 0
while b<20000:
b = b * (1+0.067)
year = year + 1
print("第{0}年拿了{1}块钱".format(year,b))
-while else用法
b = 10000
year = 0
while b<20000:
b = b * (1+0.067)
year = year + 1
print("第{0}年拿了{1}块钱".format(year,b))
else:
print("终于了")
####函数
- 代码的一种组织形式
- 一个函数一般完成一项特定的功能
- 函数使用
- 函数需要先定义
- 使用函数,俗称调用
-定义一个函数
-只是定义的话不会执行
-1.def关键字,后跟一个空格
-2.函数名,自己定义
-3.后面括号和冒号不能省,括号可以写参数
-4.函数内所有代码缩进
def func():
print("我是一个函数")
-函数的调用
-直接函数名后面跟括号
func()
####函数的参数和返回值
-参数:负责给函数传递一些必要的数据或者信息
-形参:在函数定义的时候用到的参数没有具体值,只是一个占位符
-实参:在调用函数的时候输入的值
-返回值:函数的执行结果
- 使用return关键字
- 若果没有返回,则None
-参数的定义和使用
-参数person只是一个符号,代表的是调用的时候的某一个数据
def hello(person):
print("{0},你咋啦".format(person))
p = "you"
hello(p)
-return语句的基本用法
def hello(person):
print("{0},你咋啦".format(person))
return "我爱{0},{1}爱我".format(person,person)
p = "you"
p2 = hello(p)
print(p2)
-return案例2
def hello(person):
print("{0},你咋啦".format(person))
return "提前结束"
print("继续")
return "我爱{0},{1}爱我".format(person,person)
p = "you"
p2 = hello(p)
print(p2)
#九九乘法表
for row in range(1,10):
# 打印一行
#print("{0}--a line".format(row))
for col in range(1,row+1):
#print函数默认任务打印完毕后换行
print(row * col,end=' ')
print("--------")
-定义一个函数,打印一行九九乘法表
def printLine(row):
for col in range(1,row+1):
print(row * col,end=' ')
print("")
for row in range(1,10):
printLine(row)
-参数详解
-www.cnblogs.com/bingabcd/p/6671368.html
- 参数分类
-普通参数
-默认参数
-关键字参数
-收集参数
-普通参数
-定义的时候直接定义变量名
-调用的时候直接把变量或者值放入指定位置
def 函数名(参数1,参数2,...):
# 调用
函数名(value1,value2,...)
#调用的时候,具体值参考的是位置,按位置赋值
-默认参数
-形参带有默认值
-调用的时候,如果没有对应形参赋值,则使用默认值
def func_nmae(p1=v1,p2=v2,...):
func_block
#调用1
func_name()
#调用2
value1 =100
value2=200
func_name(value1,value2)
#默认参数示例:
-报名函数,需要知道学生性别
-学习py的学生基本都是男生
def reg(name,age,gender='man'):
if gender =='man':
print('{0} is {1},he is good'.format(name,age))
else:
print('{0} is {1},she is good'.format(name,age))
reg('liming','21')
reg('xiaohonh','22','woman')
###关键字参数
def stu(name,age,addr):
print('I am a student')
print("我叫{0},今年{1}岁,我住{3}".format(name,age,addr))
n='cheng'
a=18
add='家'
stu(a,n,add)
def stu(name,age,addr):
print('I am a student')
print("我叫{0},今年{1}岁,我住{2}".format(name,age,addr))
n='cheng'
a=18
add='家'
stu(a,n,add)
def stu(name,age,addr):
print('I am a student')
print("我叫{0},今年{1}岁,我住{2}".format(name,age,addr))
n='cheng'
a=18
add='家'
stu(n,a,add)
def stu(*args):
print("Hello 大家好")
print(type(args))
for item in args:
print(item)
stu("li",18,"北京","我","sing")
stu("zhu")
stu()
###收集参数之关键字收集参数
-关键字参数按字典格式存入收集参数
-语法:
def func(**kwargs):
func_body
#调用
func(p1=v1,p2=v2,p3=v3...)
-kwargs一般约定俗称
def stu(**kwargs):
print("Hello")
print(type(kwargs))
for k,v in kwargs.items():
print(k,"---",v)
stu(name="li",age=18,add="北京",l="我",x="sing")
print("*" * 50)
stu(name="程")
###收集参数混合代用的顺序问题
-收集参数,关键字参数,普通参数可以混合使用
-使用规则就是,普通参数个关键字参数优先
-定义的时候一般找普通参数,关键字参数,收集参数tuple,dict
-收集参数混合调用
-stu模拟一个学生的自我介绍
def stu(name,age,*args,ho='没有',**kwargs):
print("Hello")
print("我叫{0},今年{1}".format(name,age))
if ho =='没有':
print('以后有')
else:
print('我的爱好是{0}'.format(ho))
print('*' * 20)
for i in args:
print(i)
print('#' * 30)
for k,v in kwargs.items():
print(k,'------',v)
-开始调用
name = 'li'
age = 19
stu(name,age)
stu(name,age,ho='游泳')
stu(name,age,'wang','liu',ho='游泳',ho2='吃',ho3='睡')
###收集参数的解包问题
-把参数放入list或者字典中,直接放入收集参数中
def stu(*args):
print('哈哈哈000')
n = 0
for i in args:
print(type(i))
print(n)
n = n+1
print(i)
l = ['LIU',15,23,'wang']
stu(l)
-此时,args表示字典内一个list类型的元素
-调用时加*
stu(*l)
###返回值
- 需要用return显示返回内容
- 如果没有返回,默认None
def func_1():
print('又返回')
def func_2():
print('无返回')
f1=func_1()
print(f1)
f2=func_2()
print(f2)
###函数文档
-作用是对当前函数的参考
-写法:
-在函数内部开始的第一行使用三字符串定义符
-具有特定的格式
-文档查看
-help函数,help(func)
-使用__doc__.
def stu(name,age,*args):
'''这是文档'''
print("厉害了")
help(stu)
stu.__doc__