更多课程 选择中心


Python培训

400-996-5531

八个Python锦囊妙计,大家都说好!

  • 发布:金牌小编
  • 来源:菜鸟学Python
  • 时间:2019-04-11 16:06

相信大家在学习Python编程的过程中,和在Python学习的过程中,或多或少都会小心收藏一些锦囊妙计,今天我分享八个Python锦囊妙计,看看跟你的锦囊妙计一样吗?有没有你的好用?

01.条件判断

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

改成

x=1 if condition else 2
print (x)

02.大数字分割

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

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

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

num1=10_000_000_000
um2=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后面会显示一个钥匙的图片

感谢您的阅读,以上就是小编今天分享给大家的八个Python的锦囊妙计,在实战中用着会不会很爽呢?好了,更多Python相关的内容尽在达内Python培训机构官网!

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python技术点总结,碰到问题再也不用慌了!
下一篇:Python中,如何将字符串常量转为变量?

如何运用Python编程处理大数据?用Python编程处理大数据的技巧是什么?

Python面向对象编程的知识点都在这了!

Python的高级特征及用法(部分)

听说这些Python知识,很少有人知道!

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省