python大作业代码100行_大二期末python大作业有效代码不低于5000行是什么水平?...

6月30日更新

鉴于题主说老师已经收回对行数的要求,就请大家看过则罢,不要再点赞了(还有收藏的是什么鬼?)。本文说的不过是一些投机取巧的伎俩,不值取,不可取。

~~~以下是原文~~~:

一个熟练工程序员,每天有效代码大概50行(很多人不信,用项目最终代码量除以人天就知道了),月薪大概12000元。外包出去得上万吧。

我们这边刚开一个报价20万的项目,预计有效代码也就5000行。

如果题主真的没有什么好办法了,建议题主从以下几个方面着手增加代码量

1 增加项目复杂度。增加项目模块,比如UI用PyQt写一遍,再用HTML5写一遍,比如后端用后端渲染方式写一遍,又以RESTful写一遍,老师问为什么写这么多遍,你说你项目是跨平台的,搞个桌面版,搞个网页版,还搞好多接口给未来移动端用。后台每个业务都单独做一个服务,互相调用。

2 不追求pythonic。能写两行的不要写成一行,不用列表推导,不用匿名函数,少用继承,少用生成器,少用装饰器;分支循环多嵌套。

3 大量硬编码。把模板、配置、字符串、变量、SQL硬编码在代码里。

4 分行写。如

容器类型分行写:

some_list: list = [

e1,

e2,

...

]

some_dict: dict = {

k1: v1,

k2: v2,

...

}

链式调用分行写。如(下面代码中也包含了SQL分行写和硬编码)

sc = SparkSession \

.builder \

.appName("some_app_name")\

.enableHiveSupport()\

.getOrCreate()

... ...

spark \

.sql("""select name

,age

from student

where grade > 3

and sex = 0

""") \

.write \

.saveAsTable(sometable, mode='overwrite')

函数参数分行写

a = some_func(

arg1,

arg2,

arg3,

...

)

5 手动展开。如

# 常规写法

sql_pattern = 'select city, population from country where city = {}'

cities = [city1, city2, city3, city4, ...., city100]

for city in cities:

sql = sql_pattern.format(city)

do_something_with_sql(sql)

# 填充代码量的写法

SQLs: list = [

"""select city

,population

from country

where city = city1

""",

"""select city

,population

from country

where city = city2

""",

...

"""select city

,population

from country

where city = city100

""",

]

for sql in SQLs:

do_something_with_sql(sql)

6 注释变有效代码。如

按下面这种方式,代码检测软件可能认为是注释而不是有效代码,

"""

this module contains some utils functions.

Usage:

bala bala ...

"""

按下面这种方式,代码检测软件会认为是有有效代码,而功能没有发生改变,

__doc__ = """

this module contains some utils functions.

Usage:

bala bala ...

"""

这适用于模块注释、类注释、函数注释。

按下面这种方式,代码检测软件可能认为是注释而不是有效代码,

if not IPPool.has_any_ip():

# 如果没有IP了

do_something()

把注释改成日志,就成了有效代码,

if not IPPool.has_any_ip():

log.info('没有IP了')

do_something()

7 多写日志,日志内容多分行。

8 多写函数快捷方式。比如你一个函数只要传入不同参数就能完成多个任务,那你多写几个函数来调用这个多功能函数,把参数写死,变成多个单功能函数。老师问为什么重复实现,你说这是shortcut,很多库都这么比如

def request(r, method):

pass

# 可以写成

def get(r):

return request(r, method="get")

def post(r):

return request(r, method="post")

9 重复实现轮子。抄一些开源代码在你的项目里。

10 多写测试。一个项目里,测试代码能占到总代码量的三分之二之多。你多编用户故事,多编工作流,多写测试用例,何愁代码量上不来。

11 不知道前端代码算不算项目代码量,如果算的话那可就简单了,嘿嘿,鬼知道HTML里能塞啥子东西进去。你尽可能塞些JS代码进去,里面尽是些永远也不会发生的事件。

以上都是些不得已的方法,真正建议的,还是希望题主把这个任务当做一次挑战,认真地完成,而不要像上面那样投机取巧。投机取巧会成为一种习惯的。认真做作业,即便最终没得到老师认可又如何,尽吾志者而不能至也,其孰能讥之乎?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值