资讯专栏INFORMATION COLUMN

Python代码太臃肿怎么办?下给给大家总结几个小技巧

89542767 / 427人阅读

  小编写这篇文章的一个主要目的,主要是给大家介绍,关于如何处理代码臃肿的事项,但是如果要处理的话,还是比较的麻烦的,那么,遇到这种问题的话,需要怎么去处理呢?下面就给大家详细的解答下。


  什么是单行代码


  你可以将单行代码视为压缩在一起的代码块,使其适合一行。它是只包含在一行中的简洁、有用的程序。


  为什么我需要它们


  如果你并不喜欢写单行代码,或者你只是好奇为什么我们必须知道这些,那么下面是一些非常有说服力的理由。


  理解One-liners将使你成为Python专家,因为你将更好地理解该语言。


  这将帮助你更快地编写代码。你可以比其他人更快地编写一段代码,这将有助于你进行竞争性编程。


  在线课程将提高你的基础知识和编程基础,因为它们会加强你的基础知识。


  你将更多地以Pythonic方式编写代码。通常,来自不同语言的人经常在Python中以非Python的方式编写代码,例如他们不使用列表推导、多重赋值和切片等。


  你可以给你的朋友、同事留下深刻的印象,如果你掌握了单行的话,你可以在面试中给人留下好印象。


  开始


  1.if-else


  优化前


  if 3<2:
  var=21
  else:
  var=42


  优化后

  var=21 if 3<2 else 42


  2.elif


  优化前


  >>>x=42
  >>>if x>42:
  >>>print("no")
  >>>elif x==42:
  >>>print("yes")
  >>>else:
  >>>print("maybe")
  yes


  优化后


  >>>print("no")if x>42 else print("yes")if x==42 else print("maybe")
  yes


  3.if


  优化前


  condition=True
  if condition:
  print('hi')


  优化后


  if condition:print('hello')
  print('hello')if condition else None


  4.函数


  优化前


  def f(x):
  return"hello"+x


  优化后


  f=lambda x:"hello"+x
  f=exec("def f(x):n return'hello'+x")


  5.循环(列表推导式)


  优化前


  squares=[]
  for i in range(10):
  squares.append(i**2)


  优化后

  squares=[i**2 for i in range(10)]


  6.if循环


  优化前


  squares=[]
  for i in range(10):
  if i%2==0:
  squares.append(i**2)


  优化后

  squares=[i**2 for i in range(10)if i%2==0]


  7.if else循环


  优化前


  squares=[]
  for i in range(10):
  if i%2==0:
  squares.append(i**2)
  else:
  squares.append(False)


  优化后


  squares=[i**2 if i%2==0 else False for i in range(10)]
  8.While循环与if else


  优化前


  c=0
  while c<10:
  if c!=5:
  print(c)
  else:
  print("FIVE")
  c+=1


  优化后


  while c<10:c+=1;print(c)if c!=5 else print("FIVE")

  9.变量交换


  优化前


  >>>def swap(x,y):
  x=x^y
  y=x^y
  x=x^y
  return x,y
  >>>swap(10,20)
  (20,10)


  优化后


  >>>x,y=10,20
  >>>x,y=y,x
  (20,10)


  10.多重赋值


  优化前


  a="ONE"
  b=2
  c=3.001


  优化后

  a,b,c="One",2,3.001


  11.将字符串写入文件


  优化前


  text="Helllloooooo"
  fileName="hello.txt"
  f=open(fileName,"a")
  f.write(text)
  f.close()


  优化后


  text="Helllloooooo"
  fileName="hello.txt"
  print(text,file=open(fileName,'a'))


  12.快速排序


  优化前


  def partition(array,start,end):
  pivot=array[start]
  low=start+1
  high=end
  while True:
  while low<=high and array[high]>=pivot:
  high=high-1
  while low<=high and array[low]<=pivot:
  low=low+1
  if low<=high:
  array[low],array[high]=array[high],array[low]
  else:
  break
  array[start],array[high]=array[high],array[start]
  return high
  def quick_sort(array,start,end):
  if start>=end:
  return
  p=partition(array,start,end)
  quick_sort(array,start,p-1)
  quick_sort(array,p+1,end)
  array=[29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44]
  quick_sort(array,0,len(array)-1)
  print(array)

  优化后


  array=[29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44]
  q=lambda l:q([x for x in l[1:]if x<=l[0]])+[l[0]]+q([x for x in l if x>l[0]])if l else[]
  print(q(array))


  13.斐波那契数列


  优化前


  def fib(x):
  if x<=2:
  return 1
  return fib(x-1)+fib(x-2)


  优化后

  fib=lambda x:x if x<=1 else fib(x-1)+fib(x-2)


  14.HTTP服务器


  优化前


  import http.server
  import socketserver
  PORT=8000
  Handler=http.server.SimpleHTTPRequestHandler
  with socketserver.TCPServer(("",PORT),Handler)as httpd:
  print("serving at port",PORT)
  httpd.serve_forever()


  优化后

  python-m http.server 8000


  15.嵌套For循环


  优化前


  iter1=[1,2,3,4]
  iter2=['a','b','c']
  for x in iter1:
  for y in iter2:
  print(x,y)


  优化后


  [print(x,y)for x in iter1 for y in iter2]

  16.输出不换行


  优化前


  for i in range(1,5):
  print(i,end="")


  优化后

  print(*range(1,5))


  18.海象运算符:=(Python 3.8)


  优化前


  command=input(">")
  while command!="quit":
  print("You entered:",command)


  优化后

  while(command:=input(">"))!="quit":print("You entered:",command)


  这篇文章就给大家介绍到这里了,希望可以给大家带来更多帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128312.html

相关文章

  • Pandas数据类型转换的个小技巧

    摘要:利用的一些辅助函数进行类型转换的函数和复杂的自定函数之间有一个中间段,那就是的一些辅助函数。这些辅助函数对于某些特定数据类型的转换非常有用如。 利用Pandas进行数据分析时,确保使用正确的数据类型是非常重要的,否则可能会导致一些不可预知的错误发生。笔者使用Pandas已经有一段时间了,但是还是会在一些小问题上犯错误,追根溯源发现在对数据进行操作时某些特征列并不是Pandas所能处理的...

    luckyw 评论0 收藏0
  • 图片怎么优化的8个小技巧

    摘要:今日我就和我们深化共享一下图片优化有必要了解的个知识点。一般我们能够拟定结构化数据规则让技术人员设计程序批量替换图片的特点,而无需我们手工操作。关于图片地图,我就不多说了,由于谷歌有许多辅导文档来协助你提高图片的查找排名,看这儿。 假如你运营在线商城又或是大型电商网站,图片优化是你必需求把握的。不仅仅是从招引潜在顾客,仍是添加图片查找流量,又或是提高网站加载速度,图片优化扮演者十分要害...

    zorro 评论0 收藏0
  • 图片怎么优化的8个小技巧

    摘要:今日我就和我们深化共享一下图片优化有必要了解的个知识点。一般我们能够拟定结构化数据规则让技术人员设计程序批量替换图片的特点,而无需我们手工操作。关于图片地图,我就不多说了,由于谷歌有许多辅导文档来协助你提高图片的查找排名,看这儿。 假如你运营在线商城又或是大型电商网站,图片优化是你必需求把握的。不仅仅是从招引潜在顾客,仍是添加图片查找流量,又或是提高网站加载速度,图片优化扮演者十分要害...

    Seay 评论0 收藏0
  • 再有人问什么是元类,就把这篇文章扔给他!

    摘要:同时,在元类中,我们还需要加上一个判断,只有在这个类创建时才需要控制其类的生成,其他的就不需要了。完整代码后台回复元类获取原创不易,如果文章对你有用的话,点赞留言转发是对我的最大支持日常学代码不止,还有美和乐趣 我之前在深入理解python中的类和对象中说过,python中的类也是一个对象,可以说是类对象,可以由type来创建类对象的。有了这个知识我们先看看下面这个函数: showIm...

    王岩威 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<