Day02函数和条件表达

news2024/11/15 1:40:54

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则不执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++菱形继承以及解决方法--虚继承 虚基表

目录菱形继承形成原因出现二义性变量的内存布局应对方案虚继承 vitrual解决二义性变量内存布局--虚基表感悟关于代码复用等的另一种关系-组合菱形继承形成原因 多继承&#xff0c;呈菱形状 菱形继承代码: class A { public:A() {}int _a ; }; class B :public A { public…

NAT技术原理、使用场景

随着Internet的发展和网络应用的增多&#xff0c;有限的IPv4公有地址已经成为制约网络发展的瓶颈。为解决这个问题&#xff0c;NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术应需而生。 NAT技术主要用于实现内部网络的主机访问外部网络…

JDK8 新特性之新增的Optional类

目录 一&#xff1a;以前对null的处理方式 二&#xff1a;Optional类介绍 三&#xff1a;Optional的基本使用 Optional的高级使用 小结 一&#xff1a;以前对null的处理方式 Test public void test01() { String userName "凤姐"; // String userName null; …

十八、Gtk4-Stateful action

有些动作action有状态。状态的典型值是布尔值或字符串。但是&#xff0c;如果你愿意&#xff0c;也可以使用其他类型的状态。 具有状态的动作称为有状态的。 Stateful action without a paramete 有些菜单被称为切换菜单。例如&#xff0c;全屏菜单有一个状态&#xff0c;它…

在甲骨文云容器实例(Container Instances)上部署edge

甲骨文云推出了容器实例&#xff0c;这是一项无服务器计算服务&#xff0c;可以即时运行容器&#xff0c;而无需管理任何服务器。 今天我们尝试一下通过容器实例部署edge。 Step1. 创建容器实例 在甲骨文容器实例页面&#xff0c;单击"创建容器实例"&#xff0c; …

审批工作流—ccflow

审批工作流—ccflow目录概述需求&#xff1a;设计思路实现思路分析1.java 代码分析参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challen…

LeetCode[547]省份数量

难度&#xff1a;中等题目&#xff1a;有 n个城市&#xff0c;其中一些彼此相连&#xff0c;另一些没有相连。如果城市 a与城市 b直接相连&#xff0c;且城市 b与城市 c直接相连&#xff0c;那么城市 a与城市 c间接相连。省份 是一组直接或间接相连的城市&#xff0c;组内不含其…

Leetcode:93. 复原 IP 地址(C++)

目录 问题描述&#xff1a; 实现代码与解析&#xff1a; 回溯&#xff1a; 原理思路&#xff1a; 问题描述&#xff1a; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。…

leetcode刷题记录总结-2.链表

文章目录一、重排列表[1. 奇偶链表](https://leetcode.cn/problems/odd-even-linked-list/solutions/)题解二、链表的增、删、改、查[203. 移除链表元素](https://leetcode.cn/problems/remove-linked-list-elements/)题解不简洁代码简洁代码707.设计链表题解不简洁代码优化后的…

mysql主从复制配置(windows和linux操作都有)

我是目录主从复制是什么&#xff1f;操作实践验证主从设置主从复制是什么&#xff1f; mysql主从复制是一个异步的复制过程&#xff0c;底层是基于mysql数据库自带的二进制日志功能。就是一台或多台mysal数据库&#xff08;slave&#xff0c;即从库&#xff09;从另一台mysql数…

macOS Big Sur 11.7.3 (20G1116) 正式版 ISO、PKG、DMG、IPSW 下载

本站提供的 macOS Big Sur 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。 请访问原文链接&#xff1a;https://sysin.org/blog/macOS-Big-Sur/&#xff0…

【Python百日进阶-Web开发-Linux】Day236 - Win11安装Windows Subsystem for Android(WSA)

文章目录一、Win11运行安卓app前提条件二、Win11运行安卓app支持以下新特性三、Win11运行安卓app操作步骤3.1 修改定位3.2 开启VT虚拟化3.3 开启电脑的Hyper-V和虚拟机平台四、WSA下载4.1 百度网盘下载4.2 store.rg-adguard.net下载五、WSA安装&#xff08;没有成功&#xff0c…

C++初阶--继承

目录 继承的概念 继承定义 继承基类成员访问方式 基类和派生类对象的赋值转换 继承中的作用域 派生类的默认成员函数 友元关系不能继承 基类static成员 菱形继承与菱形虚拟继承 虚拟继承解决数据冗余和二义性的原理 继承和组合 继承的概念 继承是类层次的复用。 继…

Golang 泛型学习

Golang 泛型 今天来学习下Golang中泛型的基础知识。使用泛型&#xff0c;开发者可以声明一个函数来适应不同类型的参数&#xff0c;避免由于参数类型不一致而声明多个处理逻辑类似的函数。在本教程中&#xff0c;将声明两个简单的非泛型函数&#xff0c;然后在单个泛型函数中实…

这些实体店直播必备技巧,新手直接套用就能火!

随着直播的受众越来越广、门槛越来越低&#xff0c;入局服装直播的实体店越来越多。对于服装厂商来说&#xff0c;服装产业链越靠下游毛利率越高&#xff0c;品牌商和销售商利润远高于加工生产商&#xff0c;约在40-50%&#xff0c;而服装制造商的毛利率仅在15%左右。而对于本土…

JDK8 新特性之收集Stream流中的结果

目录 一&#xff1a;Stream流中的结果到集合中 二&#xff1a;Stream流中的结果到数组中 三&#xff1a;对流中数据进行聚合计算 四&#xff1a;对流中数据进行分组 五&#xff1a;对流中数据进行多级分组 六&#xff1a;对流中数据进行分区 七&#xff1a;对流中数据进行拼接…

8.Java循环高级综合练习-无限循环和跳转控制语句,逢七过,平方根,判断是否为质数,猜数字小游戏

文章目录前言一、无限循环1.这三种循环中哪一种无限循环是最常用的呢?2.注意事项:二、跳转控制语句三、逢七过四、平方根五、判断该整数是否为一个质数六、猜数字小游戏保底机制总结前言 一、无限循环 1.这三种循环中哪一种无限循环是最常用的呢? 当然是右上角的while循环啦…

【若依】若依字典管理页面中列表按钮功能的实现

0. 功能实现描述 1. 代码实现 ScStfController.java /*** 查询员工证书* param stfId* param modelMap* return*/ RequiresPermissions("sc:stf:cert") GetMapping("/cert/{stfId}") public String detail(PathVariable("stfId") Long stfId, …

结构型模式-组合模式

1.概述 对于这个图片肯定会非常熟悉&#xff0c;上图我们可以看做是一个文件系统&#xff0c;对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树&#xff0c;当我们找到某个叶子节点后&#xff0c;就可以对叶子节点进行相关的操作。可以将这颗树…

谷粒学院——Day19【项目部署】

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…