准高一生写的代码,请各位大佬过目,不玻璃心

113 天前
 daishuge

https://github.com/daishuge/qqgpt_basic/blob/main/chat.py

想知道我的代码规范和程序实现怎么样?谢谢各位

14247 次点击
所在节点    Python
107 条回复
EndlessMemory
113 天前
可以了
OceanWaves
113 天前
研究这些玩玩可以,实际作用不大,考个好大学,英语达到雅思 8 炸水平,这些比研究这个收益大很多
zeni123
113 天前
考个好大学。 高中可以搞信息学,搞别的可以但是以你的水平已经意义不大了。
pf94
112 天前
这个代码在我这里是不合格的,从上往下说

1. import 顺序问题,前面已经有人说了;其他还有空格等格式问题下面就不提了
2. 30-52 行,无意义的字典定义,并且缩进有问题
3. 初始化全局变量,这个设计问题很大,导致大部分函数有副作用
4. get_information:第一个带副作用的函数,58 、60-63 行全角半角字符混用(同样的问题后面不提了)
5. 85 行:注释风格不统一,58 行的在函数定义前一行,参数空格问题
6. 115 行:注释错误,并不能 catch 不是图片的情况,因为 try 里面非图片情况没有报错而是直接返回 False
7. 139 行:经典整个 if 作为一个函数,没有处理 else 情况,if message[history_id]["history_content"][-1]["role"] != "user": ...可以让整个函数少一层缩进
8. 177 行:意义不明的变量命名
9. 181 行:pic_url 命名风格不统一,information, history 等都是整个单词,省略 picture 毫无意义
10. 189 行:循环外使用循环内定义的变量

中等问题是代码风格不统一,大问题是大量使用副作用函数
建议加上 type hint ,多用 black 和 mypy 检查
bugmaker233
112 天前
脚本语言还有代码规范吗,想咋写咋写,那些给你建议的也不一定符合你
3country
112 天前
有这心思不如高考提上 50 分,金学历比“编程能力强”这个铁锄头强太多
zhangyp7536
112 天前
我高一的时候还在看 《 30 天从零到精通 C 语言》
netizenHan
112 天前
高一都没开始就说只能到一本了?就是班级倒数努力三年也能考好大学
hanssx
112 天前
建议学学 C ,看看计算机底层的一些东西;对数学感兴趣,可以看看算法。

代码只是工具,现在让 AI 帮你写代码就差不多了。
exiledkingcc
112 天前
建议用上工具,包括但不限于 ruff black mypy 。
这些工具都可以帮助你写出更好的代码。
linyichang
112 天前
🙋
linyichang
112 天前
linyichang
112 天前
@monkeyk 🙋
xinghusp
112 天前
首先还是表扬一下,准大一能有这份能力已经难能可贵了。代码前面的大佬已经说得差不多了,我就不重复讲了,
作为一名大学的计算机老师,我谈谈其他方面的事情吧,希望能对你的计算机学习之路有点启发。

记住,计算机编程,实际上是对你所掌握的各种各样的知识(不仅仅只是计算机)的一个综合运用。

为什么这么说呢?因为计算机本质上就是个“超大号”的计算器。它可以在一秒钟内做出数以亿计的计算题。而这个计算器,需要程序员控制它,让它以特定的顺序按部就班的进行计算。

因此,程序员的工作,实际上就是将各种各样的需求,抽象分离成一个个的计算题,然后让计算机以一定的规则进行计算,最后把结果告诉我们。

举个栗子,一个乒乓球从桌子上掉落到地面。在现实生活中,显然我们可以很轻易的观察到如下现象:球落下会有个加速的过程;碰撞到地面时,会被弹起;由于存在能量损耗,每次弹起的高度会逐渐减小……现在,假如你要在计算机里模拟这样的一个场景,你是不是得知道,下落时的加速度如何计算,碰撞时的动能损失如何计算,甚至在精确一些,不同的表面材质对各种计算过程的影响有哪些……

你看,一个简单的生活小现象,在计算机里要实现起来,你得了解物理、数学的相关学科知识;而这一些知识,很多时候并不会有一门专门的课程来教你,而是需要你在日常的学习中,把每一个看起来枯燥乏味的知识融会贯通,真正理解他的本质,日后的某一天,你在遇到问题的时候,自然而然的就会想到解决方案了,这才是一个程序员最为核心的技能。

所以,针对现阶段的你,我有几点小小的建议供你参考:
1 、保持对计算机的兴趣。兴趣是最好的老师,无所谓你感兴趣计算机的啥,只要你能一直保持这样的兴趣,你就会一直有动力折腾下去。(想当年为了搞到些“生理资源”,自个儿努力把计算机网络学得个明明白白的)
2 、学好基础学科。数学、物理、化学、生物,这些都是日后能帮你解决问题的学科。另外,英语也一定要学好,很多的资料,尤其是第一手资料,都是英语的,学好英语可以帮助你快人一步。
3 、考个好大学。前面有大佬也说到了这一点,好学校的教育资源,远远比差的学校要好得多,包括师资力量,你周围人的见识,甚至于学校机房的电脑。所以,这件事情,应当是你现阶段最重要的,毕竟现在已经不是那个“酒香不怕巷子深”的年代了,有一个好的起点,日后绝对可以事半功倍。
4 、如果你还有时间的话,我推荐你可以在 Coursera 上学 Nand2Tetris 这门课程。这门课程,引导你从 0-1 构建一台现代的计算机,如果你能好好学完这门课,你对计算机的本质会有一个全面而深刻的理解,对你日后的计算机成长之路会大有脾益。

就先说这么多吧~
Cheivin
112 天前
@wxw752 #3 万挂海+和 52pojie 上面搞易语言敲 DNF 外挂,死去的回忆开始攻击我
Anita720
112 天前
@xinghusp 他是准高一,目前是初三,不是准大一
huoshanhui
112 天前
动手能力强。👍🏻

其他不重要。
duron600
112 天前
就提个醒,不要被那种“代码写得再好也没用”的人误了终身。这类人应该就没写出过能看的代码。
karnaugh
112 天前
工程化个人建议:

项目的文件摆放,你可以当做是另一个抽象的 UI 界面,相比于给用户看的 ui 界面,这是真正给开发者看的东西

如果我做的话,我会选择最外层只放 入口文件 和 readme.md ,其他的收入 src 中,然后在区分 常量 constant 、工具 util 、页面 view 、插件 plugin 等等

不过不弄也没事,纯属个人兴趣爱好,又不是运行不起来(狗头
WingXi
112 天前
第一步,先把功能按照需要给实现了。

第二部,应该参考 官方 pep8 的文档,把代码里面的风格,注释等的内容进行修改,保证代码符合官方规范

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX