python强势来袭-19-函数又来了

用Python一分钟选出底部放量跳空上扬的强势股,你也可是巴菲特 前言 最近A股市场行情火爆,对股民们来说,选到一只强势股是梦寐以求的事情,因为只有强势股才能让自己的收益跑赢大盘,不然只能眼巴巴看着指数不断上涨,而手上的股票却不动声色,懊恼不已! 相信大家都听说了量化交易这个东西了吧!不过目前国内外介绍量化的书籍、课程之类的,大多是金融背景的人编写的,所以他们的角度和我们普通股民会有些不同。偏研究分析的模型算法可能我们看不懂、用不到,有些量化系统针对于机构操盘搭建的,也不适合小资金的普通股民。 那么,什么才是普通股民所适合的量化交易打开方式呢?本文就用一个接地气的选股场景 阅读详情

前言

这次主要对函数中的一些高级操作进行讲解,方便大家在项目操作过程中对函数的操作更加灵活一些

  • 函数递归
  • 函数变量赋值
  • 参数中的函数
  • 匿名函数
  • 返回值中的函数:闭包
  • 偏函数
  • 装饰器

1. 函数递归

函数的递归,就是让在函数的内部调用函数自身的情况,这个函数就是递归函数。
递归函数其实是另外一种意义的循环
如:计算一个数字的阶乘操作,将这个功能封装成函数fact(num)
提示:阶乘算法是按照小于等于当前数字的自然数进行乘法运算
计算5的阶乘:5 X 4 X 3 X 2 X1
计算n的阶乘:n X (n - 1) X … X 3 X 2 X 1

# 定义一个递归函数
def fact(num):
    if n == 1:
        return n
    return n * fact(n - 1)
# 执行函数

>>> fact(1)
1
>>> fact(2)
2
>>> fact(3)
6
>>> fact(4)
24
>>> fact(5)
120
>>> fact(9)
362880

递归操作,整个计算过程如下 计算5的阶乘:fact(5) fact(5)
->5 X fact(5 - 1)
->5 X (4 X fact(4 - 1))
->5 X (4 X (3 X fact(3 - 1)))
->5 X (4 X (3 X (2 X fact(2 - 1)))))
=>5 X (4 X (3 X (2 X 1)))
=>5 X (4 X (3 X 2))
=>5 X (4 X 6)
=>5 X 24
=>120

我们在之前说过,递归就是另外一种特殊的循环:函数级别的循环
所以递归函数也可以使用循环来进行实现
但是循环的实现思路没有递归清晰。

使用递归函数时一定需要注意:递归函数如果一旦执行的层数过多就会导致内存溢出程序崩溃。

有一种做法是将递归函数的返回值中,不要添加表达式,而是直接返回一个函数,这样的做法旨在进行尾递归优化,大家如果有兴趣的话可以上网自行查询一下;由于不同的解释器对于函数递归执行的不同的处理,所以递归的使用请慎重分析和操作。

2. 函数变量赋值
函数,是一种操作行为
函数名称,其实是这种操作行为赋值的变量
调用函数,其实是通过这个赋值的变量加上一堆圆括号来进行函数的执行

# 定义了一个函数,函数命名为printMsg
def printMsg (msg):
    print("you say :" + msg)
# 通过变量printMsg来进行函数的调用
printMsg("my name is jerry!")

既然函数名称只是一个变量,变量中存放了这样的一个函数对象
我们就可以将函数赋值给另一个变量

# 将函数赋值给变量pm
pm = printMsg;
# 就可以通过pm来进行函数的执行了
pm(" my name is tom!")

3. 参数中的函数
函数作为一个对象,我们同样可以将函数当成一个实际参数传递给另一个函数进行处理

# 系统内置求绝对值函数abs(),赋值给变量f
f = abs;
# 定义一个函数,用于获取两个数据绝对值的和
def absSum(num1, num2, fn):
    return fn(num1) + fn(num2)
# 调用执行函数
res = absSum(-3, 3, f)
# 执行结果
~ 6

函数作为参数进行传递,极大程度的扩展了函数的功能,在实际操作过程中有非常广泛的应用。

4. 匿名函数
在一个函数的参数中,需要另一个函数作为参数进行执行:

def printMsg(name, fn):
    print(name)
    fn()

常规做法是我们定义好自己的函数,然后将函数名称传递给参数进行调用

def f():
    print("日志记录:函数执行完成")
printMsg("jerry", f)

重点在这里
我们通过如下的方式来调用函数

printName("tom", lambda:print("函数执行完成..."))
# 执行结果
tom
函数执行完成

在printName函数调用时,需要一个函数作为参数的地方,出现了lambda这样一个词汇和后面紧跟的语句

lambda是一种表达式,一种通过表达式来实现简单函数操作的形式,lambda表达式可以看成是一种匿名函数
常规的lambda表达式的语法结构是

lambda 参数列表:执行代码
如下面这样的lambda表达式

lambda x, y: x * y
> # 就是定义了类似如下的代码:
>  def test(x, y): x * y

lambda表达式已经在后端开发的各种语言中出现了,以其简洁的风格和灵活的操作风靡一时,但是需要注意,lambda表达式简化了简单函数的定义,但是同时也降低了代码的可读性
所以这样的lambda表达式,可以使用,但是要慎重使用,切记不能滥用,否则造成非常严重的后果:你的代码由于极差的可读性就会变成一次性的!

5. 返回值中的函数:闭包

函数作为对象,同样也可以出现在返回值中,其实就是在函数中又定义了另外的函数
在一个函数中定义并使用其他的函数,这样的方式在不同的编程语言中有不同的管理方式,在Python中,这样的方式也成为闭包。

# 在一个函数outerFn中定义了一个函数innerFn
def outerFn():
    x = 12;
    def innerFn():
        x = x *12
    return innerFn;
# 执行函数
f = outerFn();
f()
# 执行结果:144

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# 什么是闭包,闭包就是在函数A中添加定义了另一个函数B
# 最后将函数B返回,通过函数B就可以直接使用局部变量,扩大了局部变量的作用域
# 
# 为什么要使用闭包,闭包就是为了再多人协同开发项目过程中,同时会有多个人写多
# 个python文件并且要互相引入去使用,此时如果不同的开发人员定义的全局变量出现
# 名称相同,就会出现变量值覆盖引起的数据污染,也称为变量的全局污染。为了避免
# 出现这样的情况,我们通常通过闭包来管理当前文件中变量的使用。
#
# 怎么使用闭包,闭包函数中可以定义其他的任意多个变量和函数,在闭包函数执行的
# 时候这些函数都会执行,也就是将函数的执行从程序加载执行->迁移->闭包函数执行的
# 过程
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

6. 偏函数

常规函数操作中,我们在函数的参数中可以添加参数的默认值来简化函数的操作,偏函数也可以做到这一点,偏函数可以在一定程度上更加方便的管理我们的函数操作
偏函数通过内置模块functools的partial()函数进行定义和处理

如之前我们学习过的一个类型转换函数int(str),用于将一个字符串类型的数字转换成整数,同样的,可以在类型转换函数中指定将一个字符串类型的数字按照指定的进制的方式进行转换

# 将一个字符串类型的123转换成整数类型的123
int("123")  # 123
# 将一个字符串12按照16进制转换成十进制的整数
int("12", base=16)  # 18
# 将一个字符串17按照8进制转换成十进制的整数
int("17", base=8)  15
# 将一个字符串1110按照2进制转换成十进制的整数
int("1110", base=2) 14

# 注意:上述要转换的字符串的整数必须满足对应的进制,否则会转换报错
# 按照八进制转换,但是要转换的字符串中的数字不是8进制数字
int("9", base=8)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 8: '9'
# 按照2进制转换,但是要转换的字符串不是2进制数字
int("3", base=2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 2: '3'

上述这样的操作方式,通过一个命名关键字参数base的方式来指定转换进制,可读性较好,但是操作起来稍显繁琐,我们可以通过functools的partial()函数进行改造如下:

# functools.partial()函数语法结构
新函数名称 = functools.partial(函数名称, 默认赋值参数)

通过对指定的函数进行参数的默认赋值,然后将这样的一个新的函数保存在变量中,通过这个新函数就可以执行更加简洁的操作了

# 原始的2进制数据转换
int("111", base=2)
~执行结果:7
# 引入我们需要的模块functools
import functools
# 通过偏函数扩展一个新的函数int2
int2 = functools.partial(int, base=2)
# 使用新的函数,新的函数等价于上面的int("111", base=2)
int2("111")
~执行结果:7

系统内置函数可以通过上述的形式进行封装,那么我们自定义函数是否也可以封装呢

# 定义一个函数,可以根据用户输入的类型来遍历数据
def showData(data, *, type=1):
    if type == 1:     #打印字符串
        print(data)
    elif type ==2:   # 遍历列表、元组、集合
        for x in data:
            print(x)
    elif type == 3: # 遍历字典
        for k, v in data.items():
            print(k, v)
# 打印字符串
showData("hello functools partial");
# 打印列表
showData([1,2,3,4,5], type=2)
# 打印元组
showData((1,2,3,4,5), type=2)
# 打印集合
showData({1,2,3,4,5}, type=2)
# 打印字典
showData({"1":"a", "2":"b", "3":"c"}, type=3)

# 使用偏函数进行改造
import functools
showString = functools.partial(showData, type=1)
showList = functools.partial(showData, type = 2)
showDict = functools.partial(showData, type = 3)
# 打印字符串
showString ("hello functools partial");
# 打印列表
showList ([1,2,3,4,5])
# 打印元组
showList ((1,2,3,4,5))
# 打印集合
showList ({1,2,3,4,5})
# 打印字典
showDict ({"1":"a", "2":"b", "3":"c"})
# * * * * * * * * * * * * * * * * * * * * * *
# 整个世界,清净了...
# * * * * * * * * * * * * * * * * * * * * * *

7. 装饰器函数处理

装饰器是在不修改函数本身的代码的情况下,对函数的功能进行扩展的一个手段

装饰器,整个名词是从现实生活中抽象出来的一个概念
所谓装饰,生活中其实就是不改造原来的物体的情况下给物体增加额外的一些功能的手段,比如一个房子盖好了~但是不喜欢房子现在的墙壁颜色,不喜欢房子原始地板的颜色,就可以通过装修的形式,给房子额外增加一些装饰,让房子更加的豪华温馨
此时:房子->装修->额外的样式

我们定义一个简单的函数,用于进行数据的遍历

# 定义一个函数,可以根据用户输入的类型来遍历数据
def showData(data, *, type=1):
    if type == 1:     #打印字符串
        print(data)
    elif type ==2:   # 遍历列表、元组、集合
        for x in data:
            print(x)
    elif type == 3: # 遍历字典
        for k, v in data.items():
            print(k, v)

此时,我们想要给这个函数增加额外的功能,在函数执行之前和函数执行后增加额外的日志的记录,记录函数执行的过程,大致功能如下

print("遍历函数开始执行")
showData("hello my name is showData")
print("遍历函数执行完成")

这样的代码也是能满足我们的需要的,但是这个函数的调用如果可能出现在很多地方呢?是不是就需要在每次调用的时候都要在函数的前后写这样的代码呢?肯定不太现实

我们通过如下的方式来定义一个函数,包装我们的showData()函数

# 定义一个包装函数
def logging(func):
    def wrapper(*args, **kw):
        print("遍历函数开始执行----")
        res = func(*args, **kw)
        print("遍历函数执行完成----")
        return res;
    return wrapper
# 在我们原来的函数前面添加一个注解
@logging
def showData(data, *, type=1):
    if type == 1:     #打印字符串
        print(data)
    elif type ==2:   # 遍历列表、元组、集合
        for x in data:
            print(x)
    elif type == 3: # 遍历字典
        for k, v in data.items():
            print(k, v)

# 执行函数,我们会发现在函数执行时,出现了额外的添加的功能。
showData("my name is jerry!")
# 执行结果
~ 遍历函数开始执行----
~ my name is jerry!
~ 遍历函数执行完成----

装饰器函数执行的全过程解析 一、定义过程
1.首先定义好了一个我们的功能处理函数showData(data, * , type = 1)
2.然后定了一个功能扩展函数logging(func),可以接受一个函数作为参数
3.使用python的语法@符号,给功能处理函数增加一个标记,将@logging 添加到功能处理函数的前面 二、执行过程
1.直接调用执行showData(“my name is jerry!”)

2.python检查到函数顶部声明了@logging,将当前函数作为参数传递给 logging()函数,就是首先执行logging(showData)

3.功能处理函数的参数"my name is jerry",传递给功能扩展函数的闭包函数wrapper(*args, **kw)

4.在闭包函数wrapper中,可以通过执行func(*args, **kw)来执行我们的> 功能处理函数showData(),这样就可以在执行func(*args,**kw)之前和之后添加我们自己需要扩展的功能
[备注:函数中的参数,不论传递什么参数,都可以通过(*args, **kw)来接收,请参考函数参数部分内容]

5.执行过程如下图所示:

在这里插入图片描述
如果你看到了这里,觉得文章写得不错可以加个关注!如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。

最后针对Android程序员,除了以上内容,我自己整理了一套最新的python系统资料可以免费送给大家,从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。需要这些资料的朋友,可以进python学习交流群:851211580免费领取 。

希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!后续还会更新技术干货,谢谢您的支持!

PyScript 强势来袭,HTML 也可以跑 Python 了 Anaconda CEO Peter Wang 在上个月刚过的 PyCon 2022 发布了 PyScript,实现了在 HTML 中支持 Python 代码。简单来说,我们现在可以在 HTML 代码中加入 Python 代码,直接在浏览器中运行,这整个过程甚至不需要安装任何环境,还可以在 PyScript 添加相应的依赖,运行各种数据分析算法和图效。 如何在 HTML 中运行 PyScript? 目前,PyScript 依托于 CSS、JavaScript 代码。和引用其他 CSS、JavaS... 阅读详情

相关推荐

关于StartAI本地部署相关问题解答

很多小伙伴们都有接入自己本地SD的需求,对此小编整理了一些相关问题~

HDJ9387的博客 940

我与python约个会:19. 再说函数~那些不得不知道的事儿

前面的课程中,我们已经对函数有了简单的了解 函数的声明、函数的的调用、函数的参数以及返回值等等 本节内容主要对函数中的一些高级操作进行讲解,方便大家在项目操作过程中对函数的操作更加灵活一些 函数递归函数变量赋值参数中的函数匿名函数返回值中的函数:闭包偏函数装饰器 1. 函数递归 函数的递归,就是让在函数的内部调用函数自身的情况,这个函数就是递归函数。 递归函数其实是另外

自由先锋 782

workbench拓扑优化教程_拓扑优化实例-轮毂的优化

拓扑优化实例-轮毂的优化ANSYS Workbench的新版本集成了topology optimization模块,为用户的拓扑优化提供的很好的应用。通过拓扑优化topology optimization模块的使用可以对拓扑有较好的理解,该模块拓扑优化可以简单概括为一句话:如何在合适的位置去除确定的材料使用量,而相应的刚度变化影响最小。本例以汽车轮毂为例,来确定轮毂的辐条形状。1.建立模型DM中可...

weixin_39581739的博客 3043

判断value非空以及非None

params = {k:v for k,v in data.items() if v}

wangzhenling的专栏 783

分享一个简单的迭代学习机器人双臂控制(MATLAB)

1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐

weixin_45776027的博客 4483

【WRF数据准备】气象驱动数据-ERA5再分析数据(Copernicus)

【WRF数据准备】气象驱动数据-ERA5再分析数据

WW、forever的博客 5526

for (k, v) in dict.items()中.items()不能掉

for (k, v) in dict.items()中.items()不能掉。

weixin_44715917的博客 320

vue2 - elementUI表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消children(当子级全选中,父级自动勾选)

vue2,elementui,el-table树状表格多选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,elementUI表格里树形结构嵌套复选框全选全

✅ 精选推荐文章 1万+

3 列表循环-字典循环-删除-文件操作

1列表循环 for item in lst: 如果你只需要拿到元素 for i in range(len(lst)): 不光需要拿到元素, 还需要拿到索引 inlst lst = ["小姨多鹤_sb", "linux核心编程_sb", "shell脚本大全_sb", "linux私房菜_sb"] for item in lst: item = item.replace("...

tangbin0505的博客 567

AutoSAR MemMap模块详解及使用注意事项

在本文中,我们将深入探讨MemMap模块的实例解析,并介绍在使用该模块时需要注意的一些事项。在上述代码中,我们使用了MEMMAP_START_SEC_VAR_32BIT和MEMMAP_START_SEC_CODE来定义MemMap区域的起始位置,使用MEMMAP_STOP_SEC_VAR_32BIT和MEMMAP_STOP_SEC_CODE来定义MemMap区域的结束位置。1.合理划分MemMap区域:根据实际需求,合理划分MemMap区域,将不同类型的变量放置在不同的区域中,以便于管理和访问。

weixin_50547796的博客 2532

AI上推荐 之 AutoInt模型(Transformer开始玩特征交互)

1. 写在前面 这段时间做优化模型的事情,正好和特征交互有关系,这个也是推荐系统里面一直探索的一个方向,从浅层模型的FM, FFM, HOFM, FwFM到深层模型的DNN, PNN, NFM, AFM, DeepFM, DCN, xDeepFM, FiBiNet等,而这次正好借着这次机会, 多看一些有关于特征交叉方向的模型paper, 把一些新的模型或者较为前沿的思想融入进来。 上一篇的FiBinet模型就是在特征交互上一个非常有意思的探索, 通过SENET动态选择有用的交互特征, 然后再用一个双线性交互

Miracle8070 5724

python多线程操作字典_python dict字典 items()和iteritems()多线程遍历

items()和iteritems()区别:1、两个函数的做用字典的items方法做用:是能够将字典中的全部项,以列表方式返回。由于字典是无序的,因此用items方法返回字典的全部项,也是没有顺序的。python字典的iteritems方法做用:与items方法相比做用大体相同,只是它的返回值不是列表,而是一个迭代器。因此iteritems遍历的速度比items方法快多线程 2、使用items()...

weixin_34983902的博客 1358

基于传感器数据实现火灾报警预测分析

火警 系统当检测到烟雾、火灾、一氧化碳或其他与火灾有关或一般通知的紧急情况时,向人们发出警告

DT程序员的博客 722

python官方-Python官方中文文档强势来袭

原标题:Python官方中文文档强势来袭Python 官方支持的文档一直没有中文。小伙伴们已经习惯了原汁原味的英文文档,但如果有官方中文文档,对于初学者来说,门槛会大大的降低。现在中文文档强势来袭官方中文文档地址:https://docs.python.org/zh-cn以前也是有一些第三方维护的 Python 中文文档,不过可能因为人力等限制,并做不到同步更新与维护。目前也有很多高质量的 Pyt...

weixin_37988176的博客 128

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python官网中文官网-Python官方中文文档强势来袭

原标题:Python官方中文文档强势来袭Python 官方支持的文档一直没有中文。小伙伴们已经习惯了原汁原味的英文文档,但如果有官方中文文档,对于初学者来说,门槛会大大的降低。现在中文文档强势来袭官方中文文档地址:https://docs.python.org/zh-cn以前也是有一些第三方维护的 Python 中文文档,不过可能因为人力等限制,并做不到同步更新与维护。目前也有很多高质量的 Pyt...

weixin_37988176的博客 3825

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python强势来袭-15-函数的返回值-汇报是必须的

本文主要分析函数的返回值处理: 函数返回值的意义 返回值的操作 返回多个数据 1. 函数的返回值的意义 函数是执行一段代码完成一定的功能处理过程 函数中代码块执行的结果,如果我们后面的代码中需要用到,就需要函数返回我们执行的结果,就是需要返回值; 如果我们的函数就是执行代码,执行的结果我们后面的代码不适用,就不需要定义返回值 类似生活中某A君让某B君做一件事,就是调用了某B君的函数,如果这件事...

python_doris的博客 962

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python强势来袭-13-函数中的那些变量

函数中的变量 在函数中,我们可以看到也进行了变量的使用,那函数中的变量和函数外的变量到底有什么区别呢? 1. 全局变量的定义 声明在函数外面的变量,可以在文档的任意地方使用这个变量,我们称为全局变量 关于全局变量,使用方式如下 # 定义在函数外部的变量 name = "tom" # 直接使用全局变量 print(tom) # if代码块中使用全局变量 print(tom) # 函数中使用全局变...

python_doris的博客 209

python强势来袭-12-函数-说的就是函数

前言 经过前面几部分的学习,我们已经可以开发常规的一些简单功能处理程序了。 但是对于我们的项目开发还是远远不够的。这次内容开始进入基础进阶部分的分析 什么是函数 我们通常在进行一些功能处理的过程中,需要执行一行或者多行代码来完成整个业务流程的处理,如: # 计算指定半径的圆的面积 # 定义圆周率 pi = 3.1415926; # 指定用户输入圆的半径,通过int()将输入的数据转换成整数 r...

python_doris的博客 185

Python爬虫:jsonpath强势来袭

关于JSONJSON是一个标记符序列。这套标记符包括:构造字符、字符串、数字和三个字面值。构造字符JSON包括六个构造字符,分别是:左方括号、右方括号、左大括号、右大括号、冒号与逗号。J...

tongtongjing1765的博客 1993

python中文文档-Python官方中文文档强势来袭

原标题:Python官方中文文档强势来袭Python 官方支持的文档一直没有中文。小伙伴们已经习惯了原汁原味的英文文档,但如果有官方中文文档,对于初学者来说,门槛会大大的降低。现在中文文档强势来袭官方中文文档地址:https://docs.python.org/zh-cn以前也是有一些第三方维护的 Python 中文文档,不过可能因为人力等限制,并做不到同步更新与维护。目前也有很多高质量的 Pyt...

weixin_37988176的博客 126

python强势来袭-14-函数中的参数-送礼开始

这次主要介绍python函数的参数处理: 函数的形式参数和实际参数 函数的参数定义规则 函数参数的默认值 函数的可变参数 函数的关键字参数 函数的命名关键字参数 1. 函数的形式参数和实际参数 函数的参数主要会涉及到两个概念:形式参数、实际参数 形式参数:其实就是定义函数时,函数括号中的变量,形式参数的意义是当前函数如果要被调用执行,就必须让函数接收括号中定好的参数才能正常执行,就是形式上需...

python_doris的博客 181

python目前版本强势英雄_S11版本强势英雄图解,了解之后上王者手到擒来!

S11赛季已经开始,各位小伙伴也已经向着王者发起冲击,但是苦于不知道哪些是当前版本强势英雄造成上分难的情况,下面小编就简单的介绍一下当前版本各个位置的强势英雄,希望能帮到各位小伙伴。1.首先是打野,当前版本打野情况不容乐观,打野快的后期乏力(例如韩信、李白),打野慢的前期又带不起节奏(例如宫本、赵云)。T0梯队 综合来看当前版本裴擒虎和玄策独具一档位居T0 ,裴擒虎在高端局和职业赛场上的表现...

weixin_33508272的博客 377

python强势来袭-10-输入输出就是那么回事

python中的输入输出,在初学python的时候是比较有用的一个交互操作方式 1 数据输出 python2.x 通过print 语句进行数据输出 python3.x 通过print()函数进行数据输出 2. 数据输入 python2.x 通过raw_input()函数进行提示输入,用户输入的数据,可以通过函数的返回值进行接收,方便后续的使用,如:msg = raw_input(“请输入账号...

python_doris的博客 174

python强势来袭-17-字符串那些事儿

字符串是我们在程序中使用非常多的一个对象,对于字符串的处理在各种编程语言中也是非常重要的一部分。 1. python中的字符串定义 python中的字符串,可以使用单引号、双引号或者三个单引号包含的字符,都是字符串。 s1 = '我是一个字符串' s2 = "我也是一个字符串" s3 = ''' 我还是一个字符串 我是能换行写内容的字符串 ''' s4 = "多个字符串"*3 # 可以定义将字...

python_doris的博客 256

python强势来袭-16-pass带来的便利

1.pass语句 在项目开发的过程中,某些情况下,我们定义了函数,但是对于函数中具体的代码临时没有确定,如: def userLogin(): 这里的代码还没有想好怎么开发 # 其他代码,运行时函数会报错 此时如果我们对这个函数不做任何处理,而去开发其他的代码,这个函数就会出现错误导致程序不能运行。 此时,我们可以通过pass关键字来进行占位,让代码不要报错先能正常运行,如下: # 定义...

python_doris的博客 166
上一篇: python强势来袭-18-列表循环高级操作
下一篇: “Python太慢了、Golang糟透了":那些关于软件工程的”宗教“辩论
python-花猫
博客等级 码龄7年 105粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值