找回密码
 会员注册
查看: 27|回复: 0

PythonPython中一些有趣的用法

[复制链接]

6

主题

0

回帖

19

积分

新手上路

积分
19
发表于 2024-9-5 11:39:37 | 显示全部楼层 |阅读模式
Python是一种非常灵活和强大的编程语言,它有很多有趣的用法,以下是一些例子:一行代码实现FizzBuzz:print('\n'.join(['FizzBuzz'[i%3*4:i%5*8:-1]orstr(i)foriinrange(1,101)]))1使用列表推导式生成斐波那契数列:fib=[0,1][fib.append(fib[-2]+fib[-1])for_inrange(10)]print(fib)123交换变量:a,b=b,a1使用字符串的格式化方法打印图案:print('\n'.join([''.join(['{:4}'.format(i*j)foriinrange(1,10)])forjinrange(1,10)]))1递归计算阶乘:deffactorial(n):return1ifn==0elsen*factorial(n-1)print(factorial(5))123使用lambda表达式创建一个简单的计算器:calc={'+':lambdax,y:x+y,'-':lambdax,y:x-y,'*':lambdax,y:x*y,'/':lambdax,y:x/y}print(calc['*'](10,2))1234567使用内置的dis模块查看字节码:importdisdis.dis(lambdax:x**2)12使用reduce函数实现累加:fromfunctoolsimportreduceprint(reduce(lambdax,y:x+y,range(1,101)))12利用字典实现switch-case结构:defswitch_case(case_value):return{'a':'apple','b':'banana','c':'cherry'}.get(case_value,'default')print(switch_case('b'))1234567生成器表达式:squares=(x**2forxinrange(10))print(list(squares))12使用切片操作进行字符串反转:original_string="Hello,World!"reversed_string=original_string[::-1]print(reversed_string)123使用*操作符来解包列表:list1=[1,2,3]list2=[4,5,6]combined_list=[*list1,*list2]print(combined_list)1234使用map函数来应用函数到每个元素:numbers=[1,2,3,4,5]squared=list(map(lambdax:x**2,numbers))print(squared)123使用filter函数来筛选元素:numbers=range(10)even_numbers=list(filter(lambdax:x%2==0,numbers))print(even_numbers)123使用itertools模块进行迭代操作:fromitertoolsimportchain,combinationsdefpowerset(iterable):"powerset([1,2,3])-->()(1,)(2,)(3,)(1,2)(1,3)(2,3)(1,2,3)"s=list(iterable)returnchain.from_iterable(combinations(s,r)forrinrange(len(s)+1))print(list(powerset([1,2,3])))123456使用with语句管理资源:withopen('example.txt','r')asfile:content=file.read()print(content)123使用装饰器添加函数功能:defmy_decorator(func):defwrapper():print("Somethingishappeningbeforethefunctioniscalled.")func()print("Somethingishappeningafterthefunctioniscalled.")returnwrapper@my_decoratordefsay_hello():print("Hello!")say_hello()123456789101112使用类装饰器记录函数调用次数:classCallCounter:def__init__(self,func):self.func=funcself.calls=0def__call__(self,*args,**kwargs):self.calls+=1returnself.func(*args,**kwargs)@CallCounterdefsay_hello():print("Hello!")say_hello()say_hello()print(say_hello.calls)#Outputwillbe21234567891011121314使用eval和exec执行字符串中的代码:code="print('Hellofromeval!')"eval(code)exec_code="""foriinrange(3):print(f'Hellofromexec{i}!')"""exec(exec_code)12345678使用contextlib简化上下文管理器:fromcontextlibimportcontextmanager@contextmanagerdefmanaged_resource(*args,**kwargs):#Setuptheresourceresource=acquire_resource(*args,**kwargs)try:yieldresourcefinally:#Cleanuptheresourcerelease_resource(resource)withmanaged_resource()asresource:#Usetheresourcepass12345678910111213以上这些例子展示了Python的许多有趣和强大的特性,如列表推导式、字典和集合的用法、lambda表达式、递归以及生成器、装饰器、上下文管理器、迭代器、生成器等,它们在编写高效和可读性强的代码时非常有用。这些特性使得Python在解决某些问题时显得格外简洁和高效。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-7 06:18 , Processed in 0.792313 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表