V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kinvv
V2EX  ›  Python

写给 Python 新人:如何更好地在 V2EX 里贴出 Python 代码?

  •  
  •   kinvv · 2020-06-25 21:00:25 +08:00 · 3539 次点击
    这是一个创建于 1611 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写给 Python 新人:如何更好地在 V2EX 里贴出 Python 代码?

    起因

    每位点进本帖里来的朋友当然都知道,对于 Python 来说,代码格式并不是仅仅服务于可读性的,而是 Python 的语法。

    也正因为这样,在贴出自己的代码时,如果不能保真地展示出自己的代码缩进,就几乎不可能让愿意帮助自己的人方便地复现自己的问题。

    可是在浏览 Python 节点时,相信大伙儿也发现了,无法合适地贴出自己 Python 代码的新人朋友们,还是蛮多的。所以我打算在 V2EX 简单地科普一下。

    希望可以帮助到一些有需要的朋友。

    具体方法

    具体的方法很简单,只需要 3 步,容易学会。

    第一步:在创建新主题时,在主题文本框的右下角,将文本框的「文本标记语法」从 Default 改为 Markdown

    第二步:将自己的代码通过空格调整好缩进,然后包含在 6 个反引号正中间即可。反引号的位置在英文输入状态下 Tab 键之上。还有,部分 Markdown 渲染器可以按指定的代码语言来染色,只需要将具体的语言写在前 3 个反引号之后即可。

    第三步:通过 V2EX 的预览功能,检查自己的代码有无达到自己期待的效果。

    情况示例:

    ```python

    Your Code.

    ```

    效果演示:

    
    #Version: Python 3
    # Date: 2020-06-25
    
    import datetime
    import re
    
    def general_split_url(u):
        '''Split URL string to a list.\n'''
        return re.split('[:/.?&=#]',u)
    
    def timestamp():
        '''Return a nowtime string. eg. 2019-12-10 Tuesday PM 20:33:18  '''
        return datetime.datetime.now().strftime("%Y-%m-%d %A %p %H:%M:%S")
    
    

    写在最后

    如此,便能合适地贴出自己的代码。当然,如果你是一名老鸟,本文也许可以帮到你的地方是:在没法三言两语教会新人如何贴出合适的代码时,直接把我的这个链接甩给他。

    而如果你自己就是新手,现在就可以创建一个 V2EX 新主题,练习一下 Markdown 下是如何张贴代码的。下次再遇到问题需要求助时,就能用得上了。

    之所以想写这个帖子,一是希望帮助一些朋友,二是希望借 V2EX 这个平台认识一些写 Python 代码的朋友。

    谢谢大家。

    kinvv 于 2020 年 6 月 25 日 端午节

    EOF

    16 条回复    2020-06-29 16:04:28 +08:00
    XIVN1987
        1
    XIVN1987  
       2020-06-25 21:08:02 +08:00
    回复主题的时候怎么操作??
    kinvv
        2
    kinvv  
    OP
       2020-06-25 21:17:21 +08:00
    评论里没有看到能调节文本语法器的地方,不如直接在本帖评论里测试一下 Markdown 的方法是否默认可用:

    ``` python

    def foo(): return "Hello, world."

    if __name__ == '__main__':
    foo()

    ```
    loading
        3
    loading  
       2020-06-25 21:21:19 +08:00
    loading
        4
    loading  
       2020-06-25 21:22:32 +08:00
    以前会转的
    Trim21
        5
    Trim21  
       2020-06-25 21:28:17 +08:00 via Android   ❤️ 3
    BadAngel
        7
    BadAngel  
       2020-06-25 21:30:47 +08:00 via Android
    ```
    print('hello world')

    ```

    手机做的,不知道是否正确
    kinvv
        8
    kinvv  
    OP
       2020-06-25 21:34:22 +08:00
    @BadAngel 是的,在创建正文时这么写,就是正确的。
    musi
        9
    musi  
       2020-06-25 23:39:00 +08:00 via iPhone
    对于没有缩进的 Python 代码我一般选择不看,万一嵌套了几个 for 循环 if 判断啥的,我还得猜代码的位置。。。
    mjikop1231
        10
    mjikop1231  
       2020-06-26 10:27:42 +08:00
    各种 paste 服务和 gist 不香么
    levelworm
        11
    levelworm  
       2020-06-26 11:07:50 +08:00
    可惜评论里头好像不行。试试看纯 HTML 。。。

    <pre><code class="lang-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">test</span><span class="hljs-params">()</span>:</span>
    print(<span class="hljs-string">"Yes"</span>)

    <span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">"__main__"</span>:
    test()
    </code></pre>
    matrix67
        12
    matrix67  
       2020-06-26 13:44:54 +08:00
    ```
    print('新人之所以是新人,就是因为他来了之后不会去搜索应该怎么样贴代码空格不会被狗吃掉啊;他只会一上来就贴')

    ```

    所以解决问题之道是用程序去限制,而不是用制度去限制。比如提交框里面检测有没有代码,有代码就全部吃掉不允许提交,然后加一个代码框,让在代码框里面提交。
    a22271001
        13
    a22271001  
       2020-06-26 14:55:51 +08:00 via Android
    用 pastebin 不就好了
    xilou31
        14
    xilou31  
       2020-06-26 16:16:38 +08:00
    可以试试这个网址 https://carbon.now.sh/ ,粘贴代码进去,以图片形式保存即可
    yucongo
        15
    yucongo  
       2020-06-26 18:16:05 +08:00
    ```python
    def func():
    ...
    ```
    stackoverflow 的缩进几个空格再 markdown 在 V2EX 的回复里行不通?
    MerlinShieh
        16
    MerlinShieh  
       2020-06-29 16:04:28 +08:00
    Snipaste 不是天下第一?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:53 · PVG 22:53 · LAX 06:53 · JFK 09:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.