几个常用的Python技巧,第一个例子就震惊了,大部分人都不相信还有这种操作!

使用分隔符号的数字也可以计算!!!没想到吧,我用了两年多Python才发现…
这样的数据看起来也更加清晰。不仅可以相加,减法、乘除都可以。

# python3.6
num1 = 10_000_000_000
num2 = 10_000

print(num1 + num2)
print(f'{num1+num2:,}')
print(f'{num1+num2:_}')

'''
10000010000
10,000,010,000
10_000_010_000
'''

一行代码处理简单的 if else

condition = True
if condition:
    x = 1
else:
    x = 0

x = 1 if condition else 0

for … else… 也挺常用的

for i in range(10):
    # do something
    if i == 100:
        print("i will break")
        break
else:
    print("代码没有执行到循环中的break,遍历里所有元素")

try … else …

condition = 1
try:
    if condition:
        ret = 1 / 0
    print("这是准备前面没有报错才执行的代码")
except Exception as e:
    print(e)
else:
    print("没有异常,我就执行")

'''
condition = 1 时
输出:
division by zero

condition = 0 时
输出:
这是准备前面没有报错才执行的代码
没有异常,我就执行
'''

for 语句中使用 enumerate 来遍历

names = ['aa', 'bb', 'cc']
for index, name in enumerate(names):
    print(index, name)
'''
0 aa
1 bb
2 cc
'''

names = ['aa', 'bb', 'cc']
ages = [10, 20, 30]
regions = ['nanjing', 'hangzhou', 'shanghai']
for name, age, region in zip(names, ages, regions):
    print(f'{name} is {age} from {region}')
'''
aa is 10 from nanjing
bb is 20 from hangzhou
cc is 30 from shanghai
'''

为对象动态赋予属性

class Person():
    pass

person = Person()

first_key = 'name'
first_value = 'banana'

setattr(person, first_key, first_value)
print(person.name)  
# banana

get_first_key = getattr(person, first_key)
print(get_first_key)
# banana

升级一下:

class Person():
    pass

person = Person()

person_info = {"first": "Tom", "last": "Jenny"}

for key, value in person_info.items():
    setattr(person, key, value)

print(person.first)  # Tom
print(person.last)  # Jenny
class Person(object):
    def __init__(self, name, gender, **kwargs):
        self.name = name
        self.gender = gender
        for k, v in kwargs.items():
            # dict_items([('age', 25), ('love', 'reading')])
            setattr(self, k, v)

p1 = Person("zyp", 'male', age=25, love="reading")
# print(dir(p1))
print(p1.age)
print(p1.love)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值