for循环列表

使用for循环的另一种常见模式是对列表进行迭代。

martial_arts = [ "Sambo", "Muay Thai", "BJJ"]

formartial_art inmartial_arts:

print( f" { martial_art}has influenced

modern mixed martial arts" )

'''输出:

Sambo has influenced modern mixed martial arts

Muay Thai has influenced modern mixed martial arts

BJJ has influenced modern mixed martial arts

'''

02 while循环

while循环是一种条件有效就会重复执行的循环方式。while循环的常见用途是创建无限循环。在本示例中,while循环用于过滤函数,该函数返回两种攻击类型中的一种。

defattacks:

list_of_attacks = [ "lower_body", "lower_body",

"upper_body"]

print( "There are a total of {lenlist_of_attacks)}

attacks coming!" )

forattack inlist_of_ attacks:

yieldattack

attack = attacks

count = 0

whilenext(attack) == "lower_body":

count += 1

print( f"crossing legs to prevent attack # {count}")

else:

count += 1

print( f"This is not lower body attack,

I will cross my arms for# count}" )

'''输出:

There are a total of 3 attacks coming!

crossing legs to prevent attack #1

crossing legs to prevent attack #2

This is not a lower body attack, I will cross my arms for #3

'''

03 if/else语句

if/else语句是一条在判断之间进行分支的常见语句。在本示例中,if/elif用于匹配分支。如果没有匹配项,则执行最后一条else语句。

defrecommended_attack(position):

"""Recommends an attack based on the position"""

ifposition == "full_guard":

print( f"Try an armbar attack")

elifposition == "half_guard":

print( f"Try a kimura attack")

elifposition == "fu1l_mount":

print( f"Try an arm triangle")

else:

print( f"You're on your own,

there is no suggestion for an attack" )

recommended_attack( "full_guard") #输出:Try an armbar attack

recommended_attack( "z_guard")

#输出:You're on your own, there is no suggestion for an attack

04 生成器表达式

生成器表达式建立在yield语句的概念上,它允许对序列进行惰性求值。生成器表达式的益处是,在实际求值计算前不会对任何内容进行求值或将其放入内存。这就是下面的示例可以在生成的无限随机攻击序列中执行的原因。

在生成器管道中,诸如 “arm_triangle”的小写攻击被转换为“ARM_TRIANGLE”,接下来删除其中的下划线,得到“ARM TRIANGLE”。

deflazy_return_random_attacks:

"""Yield attacks each time"""

importrandom

attacks = { "kimura": "upper_body",

"straight_ankle_lock": "lower_body",

"arm_triangle": "upper_body",

"keylock": "upper_body",

"knee_bar": "lower_body"}

whileTrue:

random_attack random.choices(list(attacks.keys))

yieldrandom attack

#Make all attacks appear as Upper Case

upper_case_attacks =

(attack.pop.upper forattack in

lazy_return_random_attacks)

next(upper-case_attacks)

#输出:ARM-TRIANGLE

## Generator Pipeline: One expression chains into the next

#Make all attacks appear as Upper Case

upper-case_attacks =

(attack. pop.upper forattack in

lazy_return_random_attacks)

#remove the underscore

remove underscore =

(attack.split( "_") forattack in

upper-case_attacks)

#create a new phrase

new_attack_phrase =

( " ".join(phrase) forphrase in

remove_underscore)

next(new_attack_phrase)

#输出:'STRAIGHT ANKLE LOCK'

fornumber inrange( 10):

print(next(new_attack_phrase))

'''输出:

KIMURA

KEYLOCK

STRAIGHT ANKLE LOCK

'''

05 列表推导式

语法上列表推导式与生成器表达式类似,然而直接对比它们,会发现列表推导式是在内存中求值。此外,列表推导式是优化的C代码,可以认为这是对传统for循环的重大改进。

martial_arts = [ "Sambo", "Muay Thai", "BJJ"]

new_phrases [ f"mixed Martial Arts is influenced by

(martial_art)" formartial_art inmartial_arts]

print(new_phrases)

[ 'Mixed Martial Arts is influenced by Sambo',

'Mixed Martial Arts is influenced by Muay Thai',

'Mixed Martial Arts is influenced by BJJ']

06 中级主题

有了这些基础知识后,重要的是不仅要了解如何创建代码,还要了解如何创建可维护的代码。创建可维护代码的一种方法是创建一个库,另一种方法是使用已经安装的第三方库编写的代码。其总体思想是最小化和分解复杂性。使用Python编写库

使用Python编写库非常重要,之后将该库导入项目无须很长时间。下面这些示例是编写库的基础知识:在存储库中有一个名为funclib的文件夹,其中有一个_init_ .py文件。要创建库,在该目录中需要有一个包含函数的模块。

首先创建一个文件。

touch funclib/funcmod.py

然后在该文件中创建一个函数。

"""This is a simple module"""

deflist_of_belts_in_bjj:

"""Returns a list of the belts in Brazilian jiu-jitsu"""

belts= [ "white", "blue", "purple", "brown", "black"]

returnbelts

importsys;sys.path.append( "..")

fromfunclib importfuncmod

funcmod.list_of_belts_in-bjj

#输出:['white', 'blue', 'purple', 'brown', 'black']导入库

如果库是上面的目录,则可以用Jupyter添加sys.path.append方法来将库导入。接下来,使用前面创建的文件夹/文件名/函数名的命名空间导入模块。安装第三方库

可使用pip install命令安装第三方库。请注意,conda命令(https://conda.io/docs/user-guide/tasks/manage-pkgs.html)是pip命令的可选替代命令。如果使用conda命令,那么pip命令也会工作得很好,因为pip是virtualenv虚拟环境的替代品,但它也能直接安装软件包。

安装pandas包。

pip install pandas

另外,还可使用requirements.txt文件安装包。

> ca requirements.txt

pylint

pytest

pytest-cov

click

jupyter

nbval

> pip install -r requirements.txt

下面是在Jupyter Notebook中使用小型库的示例。值得指出的是,在Jupyter Notebook中创建程序代码组成的巨型蜘蛛网很容易,而且非常简单的解决方法就是创建一些库,然后测试并导入这些库。

"""This is a simple module"""

importpandas aspd

deflist_of_belts_in_bjj:

"""Returns a list of the belts in Brazilian jiu-jitsu"""

belts = [ "white", "blue", "purple", "brown", "black"]

returnbelts

defcount_belts:

"""Uses Pandas to count number of belts"""

belts = list_of_belts_in_bjj

df = pd.Dataframe(belts)

res = df.count

count = res.values.tolist[ 0]

returncount

fromfunclib.funcmod importcount_belts

print(count_belts)

#输出:5类

可在Jupyter Notebook中重复使用类并与类进行交互。最简单的类类型就是一个名称,类的定义形式如下。

classCompetitor:pass

该类可实例化为多个对象。

classCompetitor:pass

conor = Competitor

conor.name = "Conor McGregor"

conor.age = 29

conor.weight = 155

nate = Competitor

nate.name = "Nate Diaz"

nate.age = 30

nate.weight = 170

defprint_competitor_age(object):

"""Print out age statistics about a competitor"""

print( f" {object.name}is {object.age}years old")

print_competitor_age(nate)

#输出:Nate Diaz is 30 years old

print_competitor_age(conor)

#输出:Conor McGregor is 29 years old类和函数的区别

类和函数的主要区别包括:函数更容易解释。

函数(典型情况下)只在函数内部具有状态,而类在函数外部保持不变的状态。

类能以复杂性为代价提供更高级别的抽象。

关于作者:挪亚·吉夫特(Noah Gift),加州大学戴维斯分校工商管理研究生院机器学习课程讲师,是AWS认证的架构师,也是AWS云端机器学习专家,长期为包括初创公司在内的企业提供机器学习、云架构和CTO级别的咨询服务。

本文摘编自《人工智能开发实践:云端机器学习导论》,经出版方授权发布。

延伸阅读《 人工智能开发实践》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:本书讲解Amazon、Google和Microsoft公司的强大云服务产品,以及Python数据科学生态系统的成熟技术,所介绍的工作流程和案例涉及从部署到生产各个环节,通过使用当代机器学习、人工智能和云计算工具逐步构建多种云端机器学习应用程序(覆盖体育、项目管理、产品定价、房地产等领域中的实际问题),帮助你构建可扩展并能交付于生产的解决方案。

基本控制结构python跳转结构_一文看懂Python的控制结构:for、while、if…都有了...相关推荐

  1. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

  2. python 推迟运行_一文看懂Python的time模块sleep()方法和strftime()方法

    概述 今天主要介绍一下Python的time sleep()方法和strftime()方法. 一.Python time sleep()方法 Python time sleep() 函数推迟调用线程的 ...

  3. python中的映射_一文读懂Python中的映射

    python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员.获取成员.设置成员.删除成员. ...

  4. python面向对象编程指南 豆瓣_一文看懂Python面向对象编程(Python学习与新手入门必看)-绝对原创...

    尽管网上有许多关于Python面向对像的编程介绍,小编我看完后总觉得不是很满意,也不过瘾,所以决定自己亲自动手写篇文章,帮你理解Python面向对象的编程的基本概念和核心思想.本文内含很多实例代码,以 ...

  5. python写股票指标_一文看懂KDJ指标及Python实现

    KDJ指标又叫随机指标,是一种非常实用的技术分析指标,被广泛用于股市的中短期趋势分析,是期货和股票市场上最常用的技术分析工具. 随机指标KDJ是根据统计学原理,在一个特定的周期(常为9日.9周等),以 ...

  6. 一文看懂Python collections模块的高效数据类型

    原作: George Seif, 发表于medium.com, 大江狗原创翻译, 并对原文稍作修改. Python的最大优势之一是其广泛的模块和软件包.这将Python的功能扩展到许多受欢迎的领域,包 ...

  7. 一文看懂Python 爬虫 进阶(三)

    一文看懂Python 爬虫 进阶(三) 文章目录 一文看懂Python 爬虫 进阶(三) **猫眼电影(xpath)** **链家二手房案例(xpath)** **百度贴吧图片抓取** 这篇几乎都是代 ...

  8. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  9. python输入什么就输出什么_一文读懂Python的输入和输出

    本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...

最新文章

  1. java中volatile_Java中Volatile关键字详解
  2. java定时器返回future_java 定时器线程池(ScheduledThreadPoolExecutor)的实现
  3. kuka机器人if逻辑编程_KUKA机器人调试的程序语法是什么
  4. 【效率】推荐几个不错的网站!
  5. 关于IOCP乱序的探讨
  6. golang mysql断线_MySQL的连接池、异步、断线重连-Go语言中文社区
  7. ElasticSearch bool过滤查询
  8. git拉取请求_向需要的开源项目提供拉取请求的礼物
  9. clock_gettime参数中不同clock ID含义的差别
  10. how to use automake to build files
  11. Excel图表之道一突破常规
  12. 几个支持SCORM的免费平台
  13. 如何使用excel快速下载网页图片?
  14. ai老师人工智能培训老师计算机视觉老师叶梓:计算机视觉领域的自监督学习模型——MAE-12
  15. 全球及中国冻干菠萝行业市场运行模式及未来发展前景分析报告2022-2028年
  16. 买到山寨版康师傅绿茶的后果
  17. python延迟几秒_python 中止几秒执行下一步、
  18. LSM tree(日志结构合并树)_笔记
  19. Go 文件操作(创建、打开、读、写)
  20. bootstrap手机网站H5模板固定底部顶部导航DEMO下载

热门文章

  1. 数字图像处理笔记2-nbsp;边沿检…
  2. Flink SQL 核心解密 —— 提升吞吐的利器 MicroBatch
  3. 《智能经济时代初现雏形:数据赋能至上,数据共享先行》阅读笔记
  4. Kubernetes 可扩展性简介
  5. Python简单的操作excel表格
  6. Putty的安装和使用
  7. java关键字有什么用_JAVA中关键字有什么用
  8. Java程序性能优化 读书笔记(十)并行设计模式:Future模式
  9. kafka的常用命令
  10. CPU内核部件之:MMU、MPU、ITCM、DTCM、CCM、Cache