持续更新..

1,活用lambda表达式

  匿名函数 lambda 可以提供很多便利.下面是举例.

dic = {1:lambda a,b : a+b}
print(dic[1](1,3)) #

2,代码一行化.

  当逻辑语句后只有一行代码的时候,可以写在一行.没什么具体作用,可以用来装逼.

while 1:
if a>0:break for i in range(1,10) :print (i)

3,while 死循环

  我们的while死循环一直都是 用while True 来规定,这样就可以延伸出来,只有是布尔类型为True就可以表示为死循环,那么根据这个特性就可以得出一下两个编写方法.

while 1:    #死循环
print(123) flag = 1 #flag可以写成任何表示为真的数据类型
while flag:
print(1)
if 1:
flag = False #相当于break,这里的False可以换成任意的表示假的数据类型,如空字符串,空元组,None

4,列表,字典,集合 推导式.

  列表推导式 [元素  循环  判断]

  集合推导式 {元素 循环 判断}

  字典推导式{key:value  循环  循环}

  注 : 没有元组推导式,用()的叫做生成器表达式  

lst = [i for i in range(0,5) if i%2==0]    #[0, 2, 4]
print(lst)
set_ = {i for i in range(0,5) if i%2==1} #{1, 3}
print(set_)
dic = {i:j for i in lst for j in len(lst)} #{0: 2, 2: 2, 4: 2}
print(dic)

5,按位置赋值.(解构)

  这里需要注意的是等号两边的元素个数要相等 , 并且等号后面 不一定是元组,只要是能够表示位置的都可以 .比如列表 , 当然 这里也可以使 a 和 b的值进行互换.a,b = b,a

a , b = (2 , 3)
print (a) #2
print (b) #

6,解构的应用 (进阶)

  解构是一种非常好用的赋值方法.注意灵活运用.

#轻松提取字典的键值对
dic = {1:"小明",2:"小李",3:"小王"}
for i,j in dic.items():
print(i,j) #1 小明 2 小李 3 小王
def func()
return 1,2,3
x,y,z = func()
print(x) #
print(y) #
print(z)     #

7,修改递归默认最大次数

  我们都知道递归的默认最大执行次数是998,通过  sys.getrecursionlimit()可以进行修改, 详情参见这一条博客https://www.cnblogs.com/cuiyuanzhang/p/9483002.html

print(sys.getrecursionlimit())    #
sys.getrecursionlimit(2000)
print(sys.getrecursionlimit()) #

8,枚举

  通过枚举可以轻易的得到到索引和元素,也可以规定索引从哪开始.返回的是元素和索引组成的列表.

lst = ["小明","小李","小王"]
for i in enumerate(lst):
print(i) #(0,"小明") (1,"小李") (2,"小王")
for i in encumerate(lst,1):
print(i) #(1,"小明") (2,"小李") (3,"小王")

9,字符串的多行表示

  使用三引号时 , 字符串就是以多行形式存在的     使用\ 时, 字符串还是以一行存在的.

print("我有点\
    小帅")     #我有点小帅
print("""我有点
    小帅""")     #我有点
     #小帅

10,链状比较

n = 2
print (1<n>7) #False
print(1<n<=2) #True

11,三元运算

  [如果为真 执行这条语句] if  [条件]  else  [如果为假 执行这条语句]

a,b = 2,3  #解构赋值print (a) if a > b else print(b)    #

12,print 打印 模块的绝对路径

import random
print(random)

13,map 内置函数

  传入两个参数,参数1是即将运行的函数,参数2是一个迭代器.

a = map(lambda x :x+1,[1,2,3])
print(a) #<map object at 0x000001F86C278860
for j in a:
print(j) # 2 3 4

14,property和setter

  __变量使其变为私有,然后通过两个同名方法在外对其赋值和查看。

class Foo:
def __init__(self,x):
self.__x=x
@property
def func(self):
return self.__x
@x.setter
def func(self):
self.__x=x

python的小技巧 让你的代码更美观的更多相关文章

  1. Python学习小技巧之列表项的排序

    Python学习小技巧之列表项的排序 本文介绍的是关于Python列表项排序的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 典型代码1:     data_list = [6, 9, 1, ...

  2. 30个有关Python的小技巧,给程序员的 30 个基本 Python 贴士与技巧

    30个有关Python的小技巧 2013/07/04 · Python, 开发 · 4 评论 · Python 分享到: 66 本文由 伯乐在线 - Kevin Sun 翻译.未经许可,禁止转载!英文 ...

  3. Block Design 小技巧之添加RTL代码到block_design

    Block Design 小技巧之添加RTL代码到block_design 1.首先得打开Block Design,右击RTL文件,才会出现Add module to Block Design选项. ...

  4. Python编码小技巧分享【新手必学】

       本次分享了python编程小技巧总结如下,希望对大家有帮助,非常实用哦注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑.为此小编建了个Python全栈免费答疑交流.裙 :一久武其 ...

  5. 30个有关Python的小技巧

    从我开始学习python的时候,我就开始自己总结一个python小技巧的集合.后来当我什么时候在Stack Overflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当 ...

  6. <转> 30 个有关 Python 的小技巧

    目录[+] 1.1 拆箱 1.2 拆箱变量交换 1.3 扩展拆箱(只兼容python3) 1.4 负数索引 1.5 切割列表 1.6 负数索引切割列表 1.7指定步长切割列表 1.8 负数步长切割列表 ...

  7. Python Requests 小技巧总结

    关于 Python Requests ,在使用中,总结了一些小技巧把,分享下. 1:保持请求之间的Cookies,我们可以这样做. import requests self.session = req ...

  8. Python(^^^^^小技巧^^^^^——不定期更新)

    偶然想到的小技巧 ''' 交互中对传入函数的参数的数目进行检测 ''' def func(a,b,c): print(a,b,c) s=input(">>>>:&qu ...

  9. python debug小技巧&&工程能力的几点建议

    Debug小技巧: 转载请声明本文的引用出处:仰望大牛的小清新 1.初次编程时,在每一个if后面都写上else,这样,如果你的else原本是不应该运行的,那么就可以在else中输出此时的状态信息便于排 ...

随机推荐

  1. linux内核参数注释与优化

    目录 1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 参数解释由网络上收集整理,常用优化参数对比了网上多个实际应用进行表格化整理,使查看更直观. 学习linux也有不少 ...

  2. 基于.NET CORE微服务框架 -谈谈surging 的messagepack、protobuffer、json.net 序列化

    1.前言 surging内部使用的是高性能RPC远程服务调用,如果用json.net序列化肯定性能上达不到最优,所以后面扩展了protobuf,messagepack序列化组件,以支持RPC二进制传输 ...

  3. asp.net core系列 61 Ocelot 构建服务发现简单示例

    一.概述 Ocelot允许指定服务发现提供程序,如Consul或Eureka. 这二个中间件是用来实现:服务治理或秒服务发现,服务发现查找Ocelot正在转发请求的下游服务的主机和端口.目前Ocelo ...

  4. 一份完整的阿里云 Redis 开发规范,值得收藏!

    来源:yq.aliyun.com/articles/531067 作者:付磊-起扬 本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面进行说明. 键值设计 命令使用 客户端使用 相关工具 通 ...

  5. gem安装redis库时报错

    报错一: [root@Redis-1 software]# /usr/local/ruby/bin/gem install redis-3.2.2.gem ERROR: Loading command ...

  6. 解决Google Play审核中的WebViewClient.onReceivedSslError问题

    Google Play应用市场提交应用审核,出现因WebViewClient.onReceivedSslError问题导致拒绝通过. Google Paly给出的详情地址:support.google ...

  7. 如何在CentOS上创建Kubernetes集群

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由编程男孩 发表于云+社区专栏 介绍 Kubernetes(常简称为K8s)是用于自动部署.扩展和管理容器化(containerized ...

  8. Docker最全教程之使用Docker搭建Java开发环境(十七)

    前言 Java是一门面向对象的优秀编程语言,市场占有率极高,但是在容器化实践过程中,发现官方支持并不友好,同时与其他编程语言的基础镜像相比(具体见各语言镜像比较),确实是非常臃肿. 本篇仅作探索,希望 ...

  9. Android之应用市场排行榜、上架、首发

    文章大纲 一.应用市场排行榜介绍二.应用市场上架介绍三.应用市场首发介绍四.参考文档   一.应用市场排行榜介绍   iiMedia Research(艾媒咨询)权威发布<2017-2018中国 ...

  10. 2018-02-24 项目/教程中使用母语命名的"问题"

    早先试图找使用中文命名代码的项目, 但所获寥寥: 索引: 用中文编写代码的实用开源项目 · Issue #6 · program-in-chinese/overview. 更不用说教程了: 索引: 用 ...