原创: 金牌小编 

行走在Python的江湖,那能不收藏一些锦囊妙计,今天分享给大家8个小技巧,希望在实战的时候有帮助!

01.

条件判断

 

condition=True
if condition:
    x=1
else:
    x=2
print (x)

改成

x=1 if condition else 2
print (x)

02.

大数字分割

 

如果几个非常大的数字比如相加的时候,一个数字后面很多零点时候,我们很难去点这个0,比如:

num1=10000000000
num2=100000000
print (num1+num2)

上面的几个大数字,很多零,点的眼都花了!怎么办呢,Python里面有一个奇淫技巧,可以加下划线分割:

num1=10_000_000_000
num2=100_000_000
total=num1+num2
print (f'{total:,}')
>>10,100,000,000

03.

文件的关闭

f=open('log.txt','r')
file_contents=f.read()
f.close() words=file_contents.split(' ')
word_count=len(words)
print (word_count)

用with来处理更简便

with open('log.txt','r') as f:
file_contents=f.read()
words=file_contents.split(' ')
word_count=len(words)
print (word_count)

04.

优雅的用下标

 

names=['Corey','Chris','Dave','Apple']
index=0
for name in names:
    print (index,name)
index+=1

使用enumerate来计算下标

names=['Corey','Chris','Dave','Apple']
for index,name in enumerate(names):
    print (index,name)

05.

遍历多个序列

 

names=['Leo','Lili','Sam','Tom']
ages=[30,20,28,25]
for index,name in enumerate(names):
    age=ages[index]
    print (f'{name} is {age} old')

太麻烦了,用zip更方便

for name ,age in zip(names,ages):
    print (f'{name} is {age} old')

有的同学说如果我有3个序列呢,怎么办,一样可以操作

names=['Leo','Lili','Sam','Tom']
ages=[30,20,28,25]
habits=['Movies','Dance','Reading','Singing']
for name ,age,habit in zip(names,ages,habits):
    print (f'{name} is {age} old and like {habit}')

06.

巧妙的使用单下划线

 

我们在一个序列的时候,有的时候,只想取头和尾,巧妙的用单下划线

a,_,b=(1,2,3)
print (a)
print (b)
>>
1
3

但是如果有一个很长的序列的时候,我们想取头和尾怎么办呢,传统的做法是:

nums=(1,2,3,4,5,6,7,8,9)
head=nums[0]
tail=nums[-1]
print (head)
print (tail)

如果能巧妙的利用unpack方法,就会很简便:

nums=(1,2,3,4,5,6,7,8,9)
head,*_,tail=nums
print (head)
print (tail)

07.

类的属性封装

class Person():
    pass
person=Person()

如果你有一个字典需要来初始化这个类

person_info={'first':'leo','last':'sam'}

你希望最后能print (person.first),怎么办?有没有什么巧妙的方法处理?

用setattr函数

for k,v in person_info.items():
    setattr(person,k,v)

还有getattr(),可以方便的获取类的属性

for k in person_info.keys():
    print (getattr(person,k))

08.

输入加密的密码

username=input('Username: ')
passwd=input('Passwd:')
print ('Logging In...')
>>
Username: user
Passwd:admin
Logging In...

密码是显示出来的,这样肯定不太好,有没有其他优雅的方法的,用Python自带的函数getpass

from getpass import getpass
username=input('Username: ')
passwd=getpass('Passwd:')
print ('Logging In...')
>>
Username: aa
Passwd:
Logging In...

这里passwd后面会显示一个钥匙的图片

最后送一个,批量修改列表重复的元素

a = [1,2,4,1,1]

for i in range(a.count(1)):
ax =a.index(1)
q='fdsf'
a[ax]=q
print(a)

8个Python小Tips的更多相关文章

  1. Python codecs小Tips

    Python codecs小Tips 用codecs.open读进来的字符串都是unicode表示的.

  2. keras搭建深度学习模型的一些小tips

    定义模型两种方法:  1.sequential 类仅用于层的线性堆叠,这是目前最常用的网络架构 2.函数式API,用于层组成的有向无环图,让你可以构建任意形式的架构 from keras import ...

  3. HTML meta锚点跳转 小tips

    小tips meta锚点跳转 http://www.zhangxinxu.com/wordpress/2015/03/meta-http-equiv-refresh-content/

  4. Python小工具--删除svn文件

    有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...

  5. python小练习(自己瞎倒腾)

    python小练习 在网上无意中看到一个问题,心血来潮写了写,觉得比较有意思,以后遇到这种有意思的小练习也记录下. #!/usr/bin/env python # -*- coding:utf-8 - ...

  6. python小练习之二

    title: python小练习之二 tags: 新建,模板,小书匠 grammar_cjkRuby: true --- python小练习之二 需求:实现用户登录,用户名和密码保存到文件里,连续输入 ...

  7. Python小代码_2_格式化输出

    Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...

  8. Python小代码_1_九九乘法表

    Python小代码_1_九九乘法表 max_num = 9 row = 1 while row <= max_num: col = 1 while col <= row: print(st ...

  9. Windows7驱动调试小Tips

    v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...

随机推荐

  1. C-Lodop提示“有窗口已打开,先关闭它(持续如此请刷新页面)!”

    c-lodop显示“有窗口已打开,先关闭它(持续如此时请刷新页面)!”如果连续执行多个预览语句等导致的,可以预先判断一下,并可以自定义修改窗口已打开的提示,该默认提示的位置如本博客的下图http:// ...

  2. Jenkins+PowerShell持续集成环境搭建(六)参数化构建

    参数化构建可以应用于动态绑定源码地址等情况. 勾选“This build is parameterized”: 如果需要动态绑定源码地址,参考: 配置完成后构建项目变成:

  3. Deconvolution用法

  4. 了解C#中的HashSet与示例

    在C#中引入HashSet 在.NET框架中,有几个类可用于执行这些操作.一些课程如下: 列表 字典 哈希集 队列 集合 在C#编程中,像ArrayList,List这样的集合,只需添加其中的值,而不 ...

  5. Codeforces#543 div2 A. Technogoblet of Fire(阅读理解)

    题目链接:http://codeforces.com/problemset/problem/1121/A 真·阅读理解 题意就是 有n个人 pi表示他们的强度 si表示他们来自哪个学校 现在Arkad ...

  6. 自己实现strchr函数与strstr函数

    char* my_strchr(char* str, int i) { if (NULL == str) { return NULL; } while ('\0' != *str && ...

  7. Python中xlrd模块解析

    xlrd 导入模块 import xlrd 2.打开指定的excel文件,返回一个data对象 data = xlrd.open_workbook(file)                     ...

  8. python的小练习

    # -*- coding: utf-8 -*- """练习:有1,2,3,4. 4个数能组成多少个互不相同且无重复数字的三位数,分别是多少?""&qu ...

  9. 【XSY2691】中关村 卢卡斯定理 数位DP

    题目描述 在一个\(k\)维空间中,每个整点被黑白染色.对于一个坐标为\((x_1,x_2,\ldots,x_k)\)的点,他的颜色我们通过如下方式计算: 如果存在一维坐标是\(0\),则颜色是黑色. ...

  10. 登录Linux服务器显示IP和自定义备注

    默认搭建好的Linux服务器,使用Xshell登录的窗口如下所示: 可根据需要执行如上代码,再重新登录服务器,效果如下图所示: 代码片段:echo "export PS1='\u@\[\e[ ...