python 05顺序结构与函数

# -*- 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__
       
       
    

发布了89 篇原创文章 · 获赞 109 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/c1z2w3456789/article/details/91474682