5个Python概念新手必须了解!
5个Python概念新手*了解!
1. * args和** kwargs是函数参数
如果您查看Python模块或什至该模块的文档,则可能会看到*args和**kwargs。它们看起来和行为隐约地像是C语言中的指针。事实并非如此。 *args只是发送给函数的参数列表。
**kwargs 是关键字参数的字典。
*args 例:
def add_it(* args):<字体> </字体>
为 NUM 在 ARGS:<字体> </字体>
打印(num)<字体> </字体>
<字体> </字体>
add_it(3,4,5,6)
输出:
$ python dzone.py <font> </ font>
3 <font> </ font>
4 <font> </ font>
5 <font> </ font>
6
**kwargs 例:
def fish_counter(** kwargs):<字体> </字体>
打印(kwargs)<字体> </字体>
<字体> </字体>
fish_counter(鲑鱼= 10,鳟鱼= 30,冶炼= 10,大blue = 52)
输出:
$ python dzone.py <font> </ font>
{ 'bluegill':52,'smelt':10,'salmon':10,'trout':30 }
对于运行的代码 *args 和 **kwargs 例子,请这里 的文件中 args_example.py 。
2.列表推导适用于循环快捷方式
列表压缩是返回列表的一种简短方法。在代码段中,for循环为for number in args。
通常在循环内的表达式是num **2,它返回参数的平方。
def square_it(* args):<字体> </字体>
返回[ NUM ** 2 为 NUM 在 ARGS ] <字体> </字体>
<字体> </字体>
打印(square_it(3,4,5,6))
输出:
$ python dzone.py <font> </ font>
[9,16,25,36 ]
您可以将过滤器附加到列表理解的末尾以过滤出输入。例如,要仅对偶数取平方,请使用以下过滤器:
def square_it(* args):<字体> </字体>
返回[ NUM ** 2 为 NUM 在 ARGS 如果 NUM %2 == 0 ] <字体> </字体>
<字体> </字体>
打印(square_it(3,4,5,6))<字体> </字体>
输出:
$ python dzone.py <font> </ font>
[ 16、36 ]
列表理解功能不会在for 循环中添加任何特殊功能。人们使用列表推导,是因为它们较短,并且一旦您习惯了语法,就可以使代码更易于阅读。有些人可能会过度使用列表理解,并使代码更难以阅读。请注意这一点,因为将卷积列表与多个嵌套进行卷积并不是较佳实践。
如果您刚开始使用Python并看到for 一行循环,则可以在Internet上搜索列表推导并查看以下三个组件的语法:
表达。
对于循环。
过滤。
3. F字符串可以替换.format()
Python非常适合字符串操作。您可能会至少看到3或4种将变量插入字符串的技术。大多数人笨拙。一个很酷。
字符串串联
很久以前,您可能已将变量插入具有类似以下代码的字符串中:
animal = “ dogs” <字体> </字体>
人口= 3 <字体> </字体>
city = “ Palo Alto” <字体> </字体>
打印(“有” + STR(人口)+ “” + 动物 + 在“” + 城市 + “” )
输出:
$ python dzone.py <font> </ font>
有3个狗在帕洛阿尔托。
这很难阅读,容易出错。即使语法高亮显示,也很容易错过空格。
字符串替换
字符串替换可以帮助减少错误。
打印(“字符串替换格式示例”)<字体> </字体>
人口= 3 <字体> </字体>
animal = 'dogs' <字体> </字体>
city = 'Palo Alto' <字体> </字体>
my_string = '%s中有%s%s' %(人口,动物,城市)<字体> </字体>
打印(my_string)<字体> </字体>
输出量
字符串替换格式示例<font> </ font>
有3个狗在帕洛阿尔托
使用字符串替换的在线例子可在这里 的文件中 format_example.py
字串格式
更好的方法是使用.format()并制作如下字符串:
animal = “ dogs” <字体> </字体>
人口= 3 <字体> </字体>
city = “ Palo Alto” <字体> </字体>
<字体> </字体>
打印(“ {}中有{} {}”。格式(人口,动物,城市))
$ python dzone.py <font> </ font>
有3个狗在帕洛阿尔托
尽管.format在字符串连接方面有了很大的改进,但仍然有些笨拙。
F弦
首先,升级到Python 3.6或3.7。现在,您可以使用f字符串。
打印(f“ {city}中有{人口} {动物}”)
$ python3 dzone.py <font> </ font>
有3个狗在帕洛阿尔托<FONT> </ FONT>
4. Lambda函数是匿名的
Python lambda函数是快捷方式。尽管可以将它们分配给变量,但类似于普通函数,但使用以下语法通常将它们用作匿名函数。
打印((拉姆达 NUM1,NUM2:NUM1 + NUM2)(4,6))
输出:
$ python3 dzone.py <font> </ font>
10
像大多数这些Python快捷方式一样,lambda函数通常不会添加新功能。*,一旦您习惯了语法,它可以降低代码的复杂性。
5.装饰器函数扩展Python函数
您可能会看到装饰器函数与@decorator_name函数之上的函数一起使用。
@time_decorator <字体> </字体>
def cool_function:<字体> </字体>
打印(“做酷事”)<字体> </字体>
装饰器的名称可以是任何名称。例如,它将与一起使用@panda。您无需了解如何创建自己的装饰器即可使用它。例如,让我们看一下http装饰器的Django文档。
来自 django。意见。装饰。http import require_http_methods <字体> </字体>
<字体> </字体>
@require_http_methods([ “ GET”,“ POST” ])<字体> </字体>
def my_view(request):<字体> </字体>
#我现在可以假设只有GET或POST请求可以做到这一点<font> </ font>
#... <font> </ font>
通过
该import 行允许您使用预制的装饰器。在这种情况下,您只需要了解@require_http_methods 为您创建的名为的功能添加了其他功能my_view()。
更多培训课程,学习资讯,课程优惠等学校信息,请进入 上海松江区Web培训上海青浦区Python培训上海奉贤区Linux云计算培训崇明区IT培训 网站详细了解,免费咨询电话:400-998-6158