麻了,随手投简历到情趣玩具了
刚刷到一个网友吐槽,说自己随手投了情趣玩具公司的简历,然后觉得自己心理接受不了,有点“麻了”。作为程序员我真心能理解这种纠结。
我觉得这事吧,说到底是“面子”和“实际”的冲突。很多程序员(包括我身边的同事)平时投简历也会遇到类似的心理障碍,总觉得技术岗位得找点“高大上”的公司,万一投到冷门或者有争议的行业,心里总会嘀咕。但工作嘛,归根结底还是谋生,没必要太在意外界的看法。网友回帖有的说这是“封建思想”,有的直接劝放下偏见,其实都说得有道理,但人就是很难完全理性。
我反而觉得,技术人如果只盯着所谓的“行业体面”,那格局真的小了点。换个角度,哪怕是情趣玩具公司,也需要好程序员啊。最终还是要看自己想要什么,别为了面子让自己饿肚子。【备注:文末可领最新资料】
面试题:银行账户概要
其实吧,这种银行账户概要题,刚看还以为挺复杂,其实拆开了,逻辑就那几个。就比如说:你有一堆银行流水,里头有存钱的、取钱的、还有转账,产品又想让你给个“账户概要”——余额、总存入、总取出这种,不就是遍历一遍的事吗?不过你还别说,要是让新手直接一堆if else写,后头维护真出鬼了。
那天我就直接给他写了个python的demo,也没啥技术难度,就是习惯好点。大致代码给你看下,思路很清楚,假设有个列表transactions,每个元素就是一条流水,有类型和金额:
transactions = [
{'type': 'deposit', 'amount': 1000},
{'type': 'withdraw', 'amount': 200},
{'type': 'deposit', 'amount': 500},
{'type': 'withdraw', 'amount': 100}
]
就这种结构很常见,然后我跟他说你别每次都去if else里头绕。直接for一遍搞三个变量存余额、总存入、总取出就行:
balance = 0
total_deposit = 0
total_withdraw = 0
for t in transactions:
if t['type'] == 'deposit':
balance += t['amount']
total_deposit += t['amount']
elif t['type'] == 'withdraw':
balance -= t['amount']
total_withdraw += t['amount']
else:
pass# 以后有其他类型再补
print("余额:", balance)
print("总存入:", total_deposit)
print("总取出:", total_withdraw)
我跟你说,结果出来他立马笑了,这就清清楚楚了。而且像转账啥的,或者有些银行流水有服务费,你只要在else那块再细分类型就行。
说真的,这玩意要说难还真不难,但是容易出错的地方,比如说存取金额类型错了,遇到负数啥的,这都得加校验,要不后端一跑账目对不上,运维分分钟追杀你。还有就是有些时候数据量大了,你要考虑一下性能,别一万多条流水每次都for一遍,你得考虑下分批统计。
对了,那天小李还问我可不可以用类来写,其实更优雅一点:
classBankAccountSummary:
def__init__(self):
self.balance = 0
self.total_deposit = 0
self.total_withdraw = 0
defadd_transaction(self, t):
if t['type'] == 'deposit':
self.balance += t['amount']
self.total_deposit += t['amount']
elif t['type'] == 'withdraw':
self.balance -= t['amount']
self.total_withdraw += t['amount']
summary = BankAccountSummary()
for t in transactions:
summary.add_transaction(t)
print("余额:", summary.balance)
print("总存入:", summary.total_deposit)
print("总取出:", summary.total_withdraw)
其实也没多大区别,就是封装一下,后面加功能更方便,比如你要统计各个银行卡的概要,就再搞个字典,key是卡号,value是这个Summary类,直接循环就好了。
哎你别说,这种题面试也爱考。上次小王面试被问到,他紧张得差点把balance写成全局变量了。后来我还特意给他发微信说你要养成好习惯,别一堆if else糊成大饼,那维护起来费劲。
最后扯一句,银行这玩意别忘了金额精度,一定得用Decimal库,float你早晚被坑,不信你试试小数点后一堆零对不上的时候产品得拿你祭天。对吧?
-END-
我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领