使用分隔符号的数字也可以计算!!!没想到吧,我用了两年多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)