python分支循环

程序结构

  • 程序三种结构
    • 顺序
    • 分支
    • 循环

分支结构

  • 分支的基本语法

      if 条件表达式:
          语句1
          语句2
          语句3
          ......
    
  • 条件表达式就是计算结果必须为布尔值的表达式

  • 表达式后面的冒号不能少

  • 注意if后面的出现的语句,如果属于if语句块,则必须同一个锁紧等级

  • 条件表达式结果为True执行if后面的缩进的语句块

#if 语句联系
#如果你爱我,我就爱你
a = "你爱我"#字符串非空就为True,空字符串为False
if a:
    print("我爱你")
    print("一辈子")
else:
    print("我继续爱你")
print("从此幸福快乐")
我爱你
一辈子
从此幸福快乐

双向分支

  • if…else…语句

      if 条件表达式:
          语句1
          语句2
          ...
      else:
          语句1
          语句2
          .....
    
  • 双向分支有两个分支,当程序执行到if … else…语句的时候,一定会执行if或else中的一个,也仅执行一个

  • 缩进问题,if和else一个层级,其余语句一个层级

# input的作用是
# 1. 在屏幕上输出括号内的字符串
# 2. 接受用户输入的内容并返回到程序
# 3. input返回的内容一定是字符串类型

#input负责接受用户输入并把内容返回给变量
gender = input("请输入您的性别:")
#打印输入内容
print(gender)

if gender =="man":
    print("走,抽烟喝酒烫头")
    print("一起去玩啊")
else:
    print("你到底是个啥子啊")
    print("对不起,我是男生")
请输入您的性别:man
man
走,抽烟喝酒烫头
一起去玩啊
# 考试成绩判断
# 90以上: 输出优秀
# 80-90:良
# 70-80:中
# 60-70:平
# 60以下: 输出:我没你这撒学僧
score = input("请输入成绩")
score = int(score)#需要把str转换成int
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良")
elif score >= 70:
    print("中")
elif score >= 60:
    print("平")
else:
    print("我没你这撒学生")
请输入成绩70
中

多路分支

  • 很多分支的情况

  • 很多分支的情况,简称多路分支

      if  条件表达式:
          语句1
          ....
      elif 条件表达式:
          语句1
          ...
      elif 条件表达式:
          语句1
          ...
          
      .....
      else:
          语句1
          ....
    
  • elif 可以由很多歌

  • else可选

  • 多路分支只会选一个执行

if语句其他:

  • if语句可以嵌套使用,但不推荐
  • python没有switch-case语句

循环语句

  • 重复执行某些固定动作或者处理基本固定的事物
  • 分类
    • for循环
    • while循环

for循环

  • for循环

      for 变量 in 序列:
          语句1
          语句2
          ...
    
# 列表知识以后会将
# [1,2,3,4,5,6,7]

for i in range(1,8):
    print(i)
1
2
3
4
5
6
7
# 打印学生列表姓名
# 如果是jingjign,那肯定是我的最爱呀,
# 如果是别的学生,那要冷酷的拒绝他'
stu_list = ["王大眼","张三","李四"]
for stu in stu_list:
    if stu == "张三":
        print("请答到")
    else:
        print("快点来")
快点来
请答到
快点来

for-else语句

  • 当for循环结束的时候,会执行else语句
  • else语句是可选语句
# for-else语句
# 打印列表中的同学,
# 如果没有在列表中,或者列表结束了,我们需要打印提示语句,表示不在爱了

# 打印学生列表姓名
# 如果是jingjign,那肯定是我的最爱呀,
# 如果是别的学生,那要冷酷的拒绝他
stu_list = ["王大眼","张三","李四"]
for stu in stu_list:
    if stu == "王大眼":
        print("请答到")
    else:
        print("快点来")
else:
    print("表示不在爱了")
请答到
快点来
快点来
表示不在爱了

break,continue,pass

  • break: 无条件结束整个循环,简称循环猝死
  • continue:无条件结束本次循环,从新进入下一轮循环
  • pass:表示略过,通常用于站位,没有跳过功能
# 在数字1-10中,寻找数字7,一旦找到,打印出来,其余则什么都不做
# for 循环中的变量表示,一般用i,k,m,n,或者indx,idx,item之类
# 在python中,如果循环变量名称不重要,可以用下划线(_)代替
for i in range(15):
    if i == 7:
        print("哈哈哈,找到了")
        break
    else:
        print(i)
0
1
2
3
4
5
6
哈哈哈,找到了
# continue语句 版本 2
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数
# 本案例完整显示continue的用法和作用
dig_list = [1,10]
for dig in range (1,10):
    if dig % 2 == 0:
        continue
    print(dig)
    print("哈哈,你是偶数")
 
1
哈哈,你是偶数
3
哈哈,你是偶数
5
哈哈,你是偶数
7
哈哈,你是偶数
9
哈哈,你是偶数
#pass案例

age = 19
if age >19:
    pass
else:
    print("你还小")
你还小
#pass案例二
ages = [2,15,156,23,1235,52]
for age in ages:
    pass
    print(age)

2
15
156
23
1235
52

range 函数

  • 生成有序数列
  • 生成数字队列可以定制
#range案例1
#生成一个一到十的数字序列
#range的生成序列的两个数字是左包括右不包括     python 特点
dig_list = range(1,11)
for dig in dig_list:
    print(dig)
    
#一般在python中,连个表示范围的数字都是左包括右不包括,randint函数是个特例
#range函数在python2.x和python3.x有严重区别
1
2
3
4
5
6
7
8
9
10
#range 案例
#打印1到9 的数字
for i in range(1,10):
    print(i)
1
2
3
4
5
6
7
8
9

while 循环

  • 一个循环语句

  • 表示当条件成立的时候,就循环,适应于不知道具体循环次数,但能确定在某个条件成立的情况下就循环

  • while语法
    while 条件表达式:
    语句块

      #另外一种表达方法
      while  条件表达式:
          语句块1
      else:
          语句块2
    
# 如果说年利率是6.7%,本利是每年翻滚, 则多少年后本钱
cost = 10000
year = 0 #存放需要翻本的年数
while cost < 20000:
    cost = cost * (1 + 0.067)
    year += 1
print(year)

#年利率案例2
#本案例循环没有被执行,why?如何改正?
while cost < 20000:
    cost = cost * (1 + 0.067)
    year += 1
else:
    print(year)

#案例三
year = 0
cost = 10000
while cost <= 20000:
    cost *= (1 + 0.067)
    year += 1
    print("第{1}年赚了{0}钱".format(cost,year))
11
11
第1年赚了10670.0钱
第2年赚了11384.89钱
第3年赚了12147.677629999998钱
第4年赚了12961.572031209998钱
第5年赚了13829.997357301068钱
第6年赚了14756.607180240238钱
第7年赚了15745.299861316334钱
第8年赚了16800.23495202453钱
第9年赚了17925.85069381017钱
第10年赚了19126.88269029545钱
第11年赚了20408.383830545245钱

函数Function

  • 函数是代码的一种组织形式
  • 函数应该能完成一项特定的工作,而且一般一个函数值完成一项工作
  • 有些语言,分函数和过程两个概念,通俗来说,有返回结果的叫函数,无返回结果的叫过程,python不加以区别
  • 函数的使用
    • 函数使用前需要先定义
    • 使用函数,俗称调用
# 定义一个函数
# 只是定义的话不会执行
# 1. def关键字,后跟一个空格
# 2. 函数名,自己定义,起名需要遵循便令命名规则,约定俗成,大驼峰命名只给类用
# 3. 后面括号和冒号不能省,括号内可以由参数
# 4. 函数内所有代码缩进

def func():
    print("我是一个函数")
    print("爱生活,爱python")
print("function is over")
function is over
# 函数的调用
# 直接写出函数名字,后面小括号不能省略,括号内容根据情况
func()
我是一个函数
爱生活,爱python

函数的参数和返回值

  • 参数: 负责给函数传递一些必要的数据或者信息
    • 形参(形式参数): 在函数定义的时候用到的参数没有具体值,只是一个占位的符号,成为形参
    • 实参(实际参数): 在调用函数的时候输入的值
  • 返回值: 函数的执行结果
    • 使用return关键字,返回结果
    • 如果没有return,默认返回一个None,一般return None表示函数结束
    • 函数一旦执行return语句,则无条件返回,即结束函数的执行
# 形参和实参的案例
# 参数person只是一个符号
# 调用的时候用另外一个

def hello(person):
    print("{0},你好吗?".format(person))
    print("{},你看见我家女朋友了吗?".format(person))
    return None
    
p = "小明" # 调用函数,需要把P作为参数传入
hello(p)

a = ("伍六七")
hello(a)
小明,你好吗?
小明,你看见我家女朋友了吗?
伍六七,你好吗?
伍六七,你看见我家女朋友了吗?
 #  help  负责随时为你提供服务
help(None)#等价于help(print()),为什么呢?
Help on NoneType object:

class NoneType(object)
 |  Methods defined here:
 |  
 |  __bool__(self, /)
 |      self != 0
 |  
 |  __repr__(self, /)
 |      Return repr(self).
 |  
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |  
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
#九九乘法表
#version 1.0
for i in range(1,10): #控制外循环,从1到9
    for j in range(1,i + 1):#内循环,每次从第一个数字开始,打印到跟行数相同的数量
        print(i*j,end=" ")
    print("-----------------")
    
1 -----------------
2 4 -----------------
3 6 9 -----------------
4 8 12 16 -----------------
5 10 15 20 25 -----------------
6 12 18 24 30 36 -----------------
7 14 21 28 35 42 49 -----------------
8 16 24 32 40 48 56 64 -----------------
9 18 27 36 45 54 63 72 81 -----------------
#改造上面函数
def printLine(line_num):
    '''
    line_num:代表行号
    
    打印一行九九乘法表
    
    '''
    for i in range(1,line_num + 1):
            print(line_num * i,end=" ")
    print()
def jiujiu():
    for j in range(1,10):
        printLine(j)
    return None
jiujiu()
1 
2 4 
3 6 9 
4 8 12 16 
5 10 15 20 25 
6 12 18 24 30 36 
7 14 21 28 35 42 49 
8 16 24 32 40 48 56 64 
9 18 27 36 45 54 63 72 81 

参数详解

  • 参数分类
    • 普通参数/位置参数
    • 默认参数
    • 关键字参数
    • 收集参数

普通参数

- 参见上例
- 定义的时候直接定义变量名
- 调用的时候直接把变量或者值放入指定位置


        
            def 函数名(参数1, 参数2,....):
                函数体
                
            # 调用
            函数名(value1, value2,.......)
            
            # 调用的时候,具体值参考的是位置,按位置赋值

默认参数

- 形参带有默认值
- 调用的时候,如果没有对相应形参赋值,则使用默认值

            def  func_name(p1=v1, p2=v2..........):
                func_block
                
            #调用1
            func_name()
            
            # 调用2
            value1= 100
            value2=200
            func_name(value1,value2)
# 普通参数案例
def normal_para(one,two,three):
    print(one + two)
    return None
normal_para(1,2,3)
3
# 默认参数案例
def default_para(one,two,three=100):
    print(one + two)
    return None
default_para(1,3)
default_para(1,2,3)
4
3
#关键字参数
def keys_para(one,two,three):
    print(one + two)
    print(three)
    return None
keys_para(one = 1,two = 2,three = 100)
keys_para(three = 20,two  = 10,one = 1)#摆脱了位置的束缚
3
100
11
20

你可能感兴趣的:(笔记,python,学习)