Day02函数和条件表达

0. 格式化字符串

'''
格式 化字符串
'''

print(1)
print(1,2,3,4)

a = 1
b = 2.1123
c = 'hello'
s = 'a = %d b = %f  c = %s' % (a,b,c)

s += ' -- world'

print(s)

s = f'a = {a} b = {b} c = {c}'
print(s)

s = 'a = {0:5d} b = {1:.2f} c = {0}'.format(a,b,c)
print(s)

在这里插入图片描述

1. 函数概述

print()

input()

type()

int()

str()

float()

chr()

ord()

函数的作用:

​ 用来将一段功能代码封装到一起,并起个名.

​ 在使用时,只需要使用代码的名字即可

好处:

​ 提高代码的开发效率

​ 使代码更加简洁

​ 提高代码的复用率

2. 函数的定义和调用(重点)

函数的定义格式:

​ def 函数名(参数列表...):

​ 函数功能代码...

函数使用(调用):

​ 函数名(值列表...)

'''
打印佛祖图案

'''

# 函数的定义
# 定义的函数在执行程序 时,并不会执行函数中的代码
def print_fozu():
    print("                            _ooOoo_  ")
    print("                           o8888888o  ")
    print("                           88  .  88  ")
    print("                           (| -_- |)  ")
    print("                            O\\ = /O  ")
    print("                        ____/`---'\\____  ")
    print("                      .   ' \\| |// `.  ")
    print("                       / \\||| : |||// \\  ")
    print("                     / _||||| -:- |||||- \\  ")
    print("                       | | \\\\\\ - /// | |  ")
    print("                     | \\_| ''\\---/'' | |  ")
    print("                      \\ .-\\__ `-` ___/-. /  ")
    print("                   ___`. .' /--.--\\ `. . __  ")
    print("                ."" '< `.___\\_<|>_/___.' >'"".  ")
    print("               | | : `- \\`.;`\\ _ /`;.`/ - ` : | |  ")
    print("                 \\ \\ `-. \\_ __\\ /__ _/ .-` / /  ")
    print("         ======`-.____`-.___\\_____/___.-`____.-'======  ")
    print("                            `=---='  ")
    print("  ")
    print("         .............................................  ")


# 函数的使用
# 函数名()
# 当在使用函数时,也就是在函数调用 时,这时,才会到函数定义的代码 处去执行函数中的功能 代码
print_fozu()
print_fozu()
print_fozu()

3. 函数调用过程(重点)

a. 函数在定义时,函数体中的代码是不执行的

b. 当产生函数调用时,程序才会跳转到函数体中执行函数的代码

c. 函数体中的代码执行完成后,回到调用处 (重点理解)

'''
函数调用时,执行的过程

'''

# 定义函数
def show():
    print('show run...')


print('start')
show()
print('end')

4. 函数文档注释(了解)

文档注释: DocString

写在程序文件开头的位置时,是程序文件的DocString,对整个程序进行说明

写在函数开头位置时,是对函数功能的说明, 函数的 DocString

'''
函数说明文档,DocString
'''

def show():
    '''
    这是show函数的函数说明文档
     show 函数的作用是用来显示一个字符串
    '''
    print("hello world")



show()

help(show)
help(print)

5. 函数的实参和形参

实参:实际参数,是在函数调用时,括号中出现的数据称为实参

形参:形式参数,是在函数被调用时,接收函数调用传递过来的实参数据

实参和形参 在传递时,要一一对应.

'''
函数的实参和形参
'''

# 定义一个函数

def say_hi(name): # 形参
    print('Hello ', name)


# say_hi('tom')  # 实参
# say_hi('jack')
# say_hi('rose')


def my_sum(a, b):
    print(a + b)


my_sum(1, 2)
# my_sum(1)  # TypeError: my_sum() missing 1 required positional argument: 'b'
# my_sum(1,2,3)  # TypeError: my_sum() takes 2 positional arguments but 3 were given

6. 函数的参数传递过程

参数在传递时,实参要和形参一一对应,不能多,也不能少,

实参会按顺序一一赋值给形参

'''
函数返回值
return
'''

def get_num():
    return 1


# print(get_num())
# 将一个函数返回值 赋给一个变量
a = get_num()
print(a)


def show():
    print(1)
    print(2)
    # return 
    print(3)
    print(4)

a = show()
print(a)
print('over')

7. 函数返回值(难点,重点)

return 返回一个函数的结果

格式:

​ return 数据

一个函数,无论在哪遇到return,那么这个函数都会直接结束执行,回到调用处

return 后面可以没有数据

函数也可以没有return ,函数默认返回 None

'''
返回值 练习
需求:
    封装一个函数
    从键盘获取一个数字
'''


# 定义函数
def get_num():
    k = input('请输入一个数字:')
    k = int(k)
    print(k)
    # return k


# print(get_num() // 2)



'''
定义一个函数,传入两参数,并计算参数累加和返回
'''
def my_sum(a,b):
    # 当有参数后,不需要对参数重新从键盘进行输入 新数据
    # a = input('number1:')
    # b = input('number2:')
    return a + b


s = my_sum(11, 2)
print(s)

8. 函数包含多个return语句

一个函数中可以存在多个Return

但是,只能有一个语句有效

在执行顺序上,第一个遇到的Return 有效

'''
函数中存在多个Return语句
'''

def get_num():
    return 1
    return 2
    return 3

# print(1)
#  pirnt(2)  #IndentationError: unexpected indent


print(get_num())

9. 认识 Bug

bug在程序中是指让程序出现崩溃的错误

'''
debug 工具的使用
'''
print(1)
print(2)
print(3)
a = 1
print(a)
a = 10
print(a)
print(4)
print(5)

侧边打入红点,虫子图标运行

10. Debug 调试程序

在这里插入图片描述

11. 关系(比较)运算符和逻辑运算符

关系运算符的结果是 bool 类型

== 等于  ( 注意不要写成一个=, 两个符号间没有间隔)

!=  不等于

\>  

<

\>=

<=
'''
关系比较运算符
'''

def test_func():
    # ==
    print(1 == 2)  # False
    print(1 == 1)  # True

    print('*' * 10)
    # !=
    print(1 != 2)  # True
    print(1 == 2)  # False


    print('*' * 10)
    # >
    print(1 > 2) # False
    print(2 > 1) # True

    # <
    print(1 < 2) # True
    print(2 < 1) # False

    # >=  <=
    print('*' * 10)
    # >=
    print(1 >= 2)  # False
    print(2 >= 1)  # True
    print(1 >= 1)  # True

    # <=
    print(1 <= 2)  # True
    print(2 <= 1)  # False
    print(1 <= 1)  # True

test_func()
逻辑运算符:

​	运算结果也是 bool 类型值
'''
逻辑运算符
'''


def test_func():
    # 逻辑与 and   理解成乘法  ture 表示1  false 表示 0
    print(True and True)  # True
    print(True and False)  # False
    print(False and True)  # False
    print(False and False)  # False

    # 逻辑或 or  理解成加法
    print(True or True)  # True
    print(True or False)  # True
    print(False or True)  # True
    print(False or False)  # False

    # 逻辑非
    print(not True)  # False
    print(not False)  # True

    print('*' * 10)

    # a = int(input('number:'))
    # print(a > 0 and a > 10)  # True and False  - > False

    print(1 and 2 and 3)
    print(0 and 2 and 3)

    print(1 or 2 or 3)
    print(0 or 2 or 3)
    print(0 or 0 or 3)


test_func()

12. if 语句的格式和作用

格式:

if 条件:

​	满足条件执行的代码
'''
if 的使用格式
'''

def is_net(age):
    if age >= 18:
        print('可以上网')



age = int(input('请输入你的年龄 :'))
is_net(age)

'''
if 的使用格式
'''

def is_net(age):
    if age >= 18:
        print('可以上网')
    else:
        print('年龄不够,上什么网,滚去学习')



age = int(input('请输入你的年龄 :'))
is_net(age)

13. if-else 格式和作用

格式:

if 条件:

​	满足条件执行的代码

else:

​	不满足条件执行的代码

```python
'''
练习 :
定义一个函数
接收一个数字参数,判断该 数字是否是偶数
'''

# 定义一个函数,判断 是否是偶数
def is_even(n):
    if n % 2 == 0 :
        print(f'{n} 是偶数')
    else:
        print(f'{n} 是奇数')


m = int(input('please input number:'))
is_even(m)
```



if 判断条件,如果条件满足,执行if后的代码,如果条件不满足,执行else后面的代码

14. if-elif-else 格式和作用

if 条件1:

​	满足条件1执行的代码

elif 条件2:

​	满足条件2执行的代码

elif 条件3:

​	满足条件3执行的代码

...

else:

​	不满足条件执行的代码

顺序判断,先判断条件1,满足条件,执行条件1后面的代码

如果不满足条件1,那么继续判断条件2,如果满足执行条件2后面的代码

如果不满足条件2,继续向后判断,满足哪个条件,执行哪个条件后的代码

else是指定如果所有的前面的条件都不满足,那么执行else后面的代码

else是一个可选的模块,可以省略不写,但是一般会写上,用来容错.
'''
if -elif -else 格式 
'''

def is_week_day(day):
    if day == '1' or day == '一':
        print('星期一')
    elif day == '2' or day == '二':
        print('星期二')
    elif day == '3' or day == '三':
        print('星期三')
    elif day == '4' or day == '四':
        print('星期四')
    elif day == '5' or day == '五':
        print('星期五')
    elif day == '6' or day == '六':
        print('星期六')
    elif day == '7' or day == '日':
        print('星期日')
    else:
        print('输入的日期不对')


d = input('input:')
is_week_day(d)

15. if-elif-else 练习

在这里插入图片描述

16. if 语句的嵌套的作用

if 条件:

​	if 条件:

​		if 条件:
'''
if 嵌套格式 和练习
'''

# 定义一个函数,用来判断成绩的优良中差不及格

def is_socre_level(score):

    # 先判断输入的成绩 是否有效
    if score >= 0 and score <= 100:
        # 成绩有效,判断级别
        if score >= 90:
            print(f'得分 {score }, 级别优')
        elif score >= 80:
            print(f'得分 {score }, 级别良')
        elif score >= 70:
            print(f'得分 {score}, 级别中')
        elif score >= 60:
            print(f'得分 {score }, 级别差')
        else:
            print(f'得分 {score }, 级别不及格')
    else:
        print(f'输入的成绩 {score} 是无效的')


s = int(input('input score:'))
is_socre_level(s)




17. 随机数Random

1. 导入 random 模块

2. random.randint(n1,n2)

   通过这个函数,得到一个[n1, n2]
'''
随机数的使用
'''

# 导入 模块
import random

# 使用随机数模块获取一个随机数
n = random.randint(0, 2)  # [0,1,2]
print(n)

18. 猜拳游戏

石头 0
剪子 1
布 2
1.先定义一个函数
2.定义一个随机数
3.获取玩家输入的值
4.将石头剪子布类型转换
5.将玩家输入的值与随机产生的值相互比较大小
6.玩家 0 电脑1 玩家1 电脑2 玩家2 电脑0 则输出值玩家赢
7.玩家与电脑相同则输出值平局
8.否则输出值 电脑赢
9.调用函数
10获取调用的值

'''
   a. 两个角色  玩家 player  - 电脑 robot
   b. 动作: 石头 0 , 剪刀 1,  布 2
   c. 我的出拳: 由输入完成
   d. 电脑的出拳: 随机数完成
   e. 比较出拳
   f. 相等 - 平局
   g. 玩家赢: p0:r1  p1:r2  p2:r0
   h. 剩下的情况就是电脑赢

'''

# 导入随机数模块
import random


# 定义一个函数
def game():
    # 定义一个玩家变量,从键盘输入值
    player = int(input('请输入一个状态(石头 0 , 剪刀 1,  布 2):'))

    # 定义一个电脑变量,使用随机数获取状态
    robot = random.randint(0, 2)

    # 比较状态
    # 先状态平局
    if player == robot:
        print('平局')
    # 再判断玩家赢的状态
    elif ((player == 0) and (robot == 1)) or ((player == 1) and (robot == 2)) or ((player == 2) and (robot == 0)):
        print('玩家赢')
    # 剩下就是电脑赢的状态
    else:
        print('你输出,电脑胜出')



# 函数调用,开始游戏
game()

'''
思考题:
    在这个题目上的基础上,让结果更加清晰
    
    
升级题:
    棒子老虎鸡:
    
    棒子-> 老虎 -> 鸡 -> 虫 -> 棒子
    
扩展题:
    将游戏重复执行,三局两胜

'''


19. if 语句实现三目运算符(了解)

'''
if 实现的三目运算符

'''

def test_func():

    # 输入一个数,判断奇偶
    n = int(input('number:'))

    # s = '偶数' if n % 2 == 0 else '奇数'
    s = '奇数' if n % 2 != 0 else '偶数'

    print(s)



test_func()

20. 循环语句while

'''

输出 1- 100 之间的值
'''

# 定义一个函数
def test_func():
    # 定义一个循环变量并有初始值
    i = 1

    # 判断条件
    while i <= 100:

        # 循环体
        print(i)

        # 改变循环变量
        i += 1


# 调用函数执行
test_func()

---- 以下为备用----

break

continue

while 循环嵌套

打印正方形

打印三角形

打印九九乘法表

猜拳游戏

for-in 循环& range

for-in-else # for 循环不被breek中断时, 执行else语句; break则不执行

上,让结果更加清晰

升级题:
棒子老虎鸡:

棒子-> 老虎 -> 鸡 -> 虫 -> 棒子

扩展题:
将游戏重复执行,三局两胜

'''




## 19. if 语句实现三目运算符(了解)

```python
'''
if 实现的三目运算符

'''

def test_func():

    # 输入一个数,判断奇偶
    n = int(input('number:'))

    # s = '偶数' if n % 2 == 0 else '奇数'
    s = '奇数' if n % 2 != 0 else '偶数'

    print(s)



test_func()

20. 循环语句while

'''

输出 1- 100 之间的值
'''

# 定义一个函数
def test_func():
    # 定义一个循环变量并有初始值
    i = 1

    # 判断条件
    while i <= 100:

        # 循环体
        print(i)

        # 改变循环变量
        i += 1


# 调用函数执行
test_func()

---- 以下为备用----

break

continue

while 循环嵌套

打印正方形

打印三角形

打印九九乘法表

猜拳游戏

for-in 循环& range

for-in-else # for 循环不被breek中断时, 执行else语句; break则不执行

posted @ 2023-01-23 16:19  李好秀  阅读(33)  评论(0编辑  收藏  举报