深度之眼(九)——python函数--面向过程的编程(下)

简介: 深度之眼(九)——python函数--面向过程的编程(下)

4.1.6 几点建议


1.函数及其参数的命名参照变量的命名


字母小写及下划线组合

有实际意义.

2.应包含简要阐述函数功能的注释,注释紧跟函数定义后面


0a2653c851af460fa595bd959398a8f1.png


3、函数定义前后各空两行


2d65d23f6d4748949b924e4057485923.png


4.2 函数式编程实例


2e9b90b2ca334476abebe75bafe6eeaa.png


问题抽象


1、在小丹Vs小伟的二元比赛系统中,小丹每球获胜概率55%,小伟每球获胜概率45%;

2、每局比赛,先赢21球(21分) 者获胜;

3.假设进行n = 1000场独立的比赛,小丹会获胜多少场? (n 较大的时候,实验结果=真实期望)


问题分解


0a2653c851af460fa595bd959398a8f1.png


1、输入原始数据

2d65d23f6d4748949b924e4057485923.png

2、多场比赛模拟


2e9b90b2ca334476abebe75bafe6eeaa.png4cebaac233b3433da32a72337a77fc60.png

6de278e6d6694ce5bb08e7e842b7e74b.png8ec4f2997fb246878c34ecd6d122b7c6.png


3、结果输出

综上就行


import random


def get_inputs():

# 获取原始数据
    proh_A = eval(input("请输入运动员A的每球(0~1):"))
    proh_B = round(1-proh_A, 2)
    number_of_games = eval(input("请输入模拟的场次(正整数):"))
    print("模拟比赛总次数:",number_of_games)
    print("A 选手每球获胜的概率:",proh_A)
    print("B 选手每球获胜的概率:",proh_B)
    return proh_A,proh_B,number_of_games
def game_over(score_A, score_B):
    #单场模拟结束条件,一方达到21分,比赛结束
    return score_A == 21 or score_B == 21
def sim_one_game(proh_A, proh_B):
    #模拟一场比赛结果
    score_A, score_B = 0, 0
    while not game_over(score_A, score_B):
        if random.random() < proh_A:   # random.random()产生[0,1)之间的随机小数,均匀分布
            score_A += 1
        else:
            score_B += 1
    return score_A, score_B
# score_A, score_B = sim_one_game(0.7,0.3)
# print(score_A)
# print(score_B)
def sim_n_games(proh_A, proh_B, number_of_games):
    #模拟多场比赛的结果
    win_A, win_B = 0, 0
    for i in range(number_of_games):
        score_A, score_B = sim_n_games(proh_A, proh_B, number_of_games)
        if score_A > score_B:
            win_A += 1
        else:
            win_B += 1
    return win_A, win_B
def print_summer(win_A, win_B, number_of_games):
    # 结果汇总输出
    print("共模拟{}场比赛",format(number_of_games))
    print("\033[31m选手A获胜{0}场",format(win_A,win_A/number_of_games))
    print("选手B获胜{0}场,占比{1:.1%}",format(win_B,win_B/number_of_games))
def main():
    #主要逻辑
    proh_A, proh_B,number_of_games = get_inputs()
    win_A,win_B = sim_n_games(proh_A, proh_B,number_of_games)
    print_summer(win_A, win_B, number_of_games)
main()


4.3 匿名函数


1、基本形式


0a2653c851af460fa595bd959398a8f1.png


2、常用用法


2d65d23f6d4748949b924e4057485923.png


排序sort() sorted()


2e9b90b2ca334476abebe75bafe6eeaa.png


max() min()


4cebaac233b3433da32a72337a77fc60.png


4.4面向过程和面向对象


面向过程——以过程为中心的编程思想, 以“什么正在发生"为主要目标进行编程。冰冷的, 程序化的

面向对象——将现实世 界的事物抽象成对象,更关注谁在受影响”,更加贴近现实。有 血有肉,拟人(物)化的


以公共汽车为例

**“面向过程”😗*汽车启动是一个事件, 汽车到站是另一个事件。。。。

在编程序的时候我们关心的是某一个事件, 而不是汽车本身。

我们分别对启动和到站编写程序。

**“面向对象"😗*构造^汽车’这个对象。

对象包含动力、服役时间、生产厂家等等一系列的“属性”;

也包含加油、启动、加速、刹车、拐弯、鸣喇叭、到站、维修等一系列的“方法”。

通过对象的行为表达相应的事件

😁💖😜🤷‍♂️😁‘


小结


0a2653c851af460fa595bd959398a8f1.png2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png



相关文章
|
5天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
11天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
11天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
11天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
2天前
|
数据采集 存储 数据处理
Python中的多线程编程及其在数据处理中的应用
本文深入探讨了Python中多线程编程的概念、原理和实现方法,并详细介绍了其在数据处理领域的应用。通过对比单线程与多线程的性能差异,展示了多线程编程在提升程序运行效率方面的显著优势。文章还提供了实际案例,帮助读者更好地理解和掌握多线程编程技术。
|
5天前
|
存储 人工智能 数据挖掘
Python编程入门:打造你的第一个程序
本文旨在为初学者提供Python编程的初步指导,通过介绍Python语言的基础概念、开发环境的搭建以及一个简单的代码示例,帮助读者快速入门。文章将引导你理解编程思维,学会如何编写、运行和调试Python代码,从而开启编程之旅。
27 2
|
6天前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
17 1
|
9天前
|
存储 网络协议 IDE
从零起步学习Python编程
从零起步学习Python编程
|
12天前
|
机器学习/深度学习 存储 算法
探索Python编程:从基础到高级应用
【10月更文挑战第38天】本文旨在引导读者从Python的基础知识出发,逐渐深入到高级编程概念。通过简明的语言和实际代码示例,我们将一起探索这门语言的魅力和潜力,理解它如何帮助解决现实问题,并启发我们思考编程在现代社会中的作用和意义。
|
7天前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
17 0
下一篇
无影云桌面