如何让自己的代码更加的简单和直白好看
常规思路打印九九乘法表:
#方式一:通过【for..in..】方法实现
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%2d"%(j,i,j*i),end=' ')
print("")
#方式二:通过【while】方法实现
i=1
while i<10:
j=1
while j<=i:
print("%d*%d=%2d"%(j,i,j*i),end=' ')
j+=1
print("")
i+=1
通过列表推导式优化后面,一行代码写出:
print("\n".join([" ".join(["{}*{}".format(i,j) for j in range(1,i+1) for i in rang(1,10)]))
实现一个年后抽奖系统,一个公司有300个员工,要求在年后时候通过抽奖的方式,抽除2个一等奖,5个二等奖,8个三等奖。
实现方法如下:
方法一:
#第一步定义一个列表,里面储存300个员工
user_list=[]
for i in range(1,301):
user="员工{}.format(i)"
user_list.append(user)
#第二步,抽奖
#random.sample随机抽取样本,去user_list中随机抽取5个,并把5个放到一一个列表中返回
#third_list=[用户1,用户1,用户,用户1]
third_list=random.sample(user_list,8)#随机抽取8个
print("三等奖:",third_list)
for item in third_list:
user_list.remove(item)
second_list=random.sample(user_list,5)#随机抽取5个
print("二等奖:",second_list)
for item in second_list:
user_list.remove(item)
first_list=random.sample(user_list,2)#随机抽取2个
print("一等奖:",first_list)
for item in first_list:
user_list.remove(item)
方法二:
import random
#第一步定义一个列表,里面储存300个员工
user_list=[]
for i in range(1,301):
user="员工{}.format(i)"
user_list.append(user)
#第二步,抽奖
bonus_list=[["三等奖",8],["二等奖",5],["一等奖",2]]
for text,count in bonus_list:
#["三等奖",8]
winner_list=random.sample(user_list,count)#去user_list中随机抽取8个
print(text,winner_list)
for user in winner_list:
user_list.remove(user)
方法三:
import random
#第一步定义一个列表,里面储存300个员工
user_list=["员工{}".format(i) for i in range(1,301)]
#第二步,抽奖
bonus_list=[["三等奖",8],["二等奖",5],["一等奖",2]]
for text,count in bonus_list:
#["三等奖",8]
winner_list=random.sample(user_list,count)#去user_list中随机抽取8个
print(text,winner_list)
for user in winner_list:
user_list.remove(user)
上面简单介绍如何优化代码,我们在写代码的时候可以去思考那个一段可以优化,优化后可以更加的好看。