CSDN21天学习挑战赛——day1 21天python逆袭学习计划

21天学习挑战赛——day1 21天python逆袭学习计划

活动地址:CSDN21天学习挑战赛

一、自我介绍:

目前刚刚毕业,专业数据科学与大数据,Python小学生,希望通过21天的训练,跟着大佬走向逆袭之路。

二、学习计划

1,学习目标
能够熟练运用Python语言。

2,学习内容
完成每天的群里发的学习内容。

3,学习时间
每天至少一小时。

三、Python的编码规范

1.缩进规则
Python 采用代码缩进和冒号( : )来区分代码块之间的层次。
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
对于 Python 缩进规则,初学者可以这样理解,Python 要求属于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。建议使用 Emacs 的 Python-mode 默认值:4 个空格一个缩进层次。不要用tab,也不要tab和空格混用

正确示例代码:

if a==0:
    print("正确")        # 缩进4个空白占位
else:                    # 与if对齐
    print("错误")        # 缩进4个空白占位

2.注释
Python中使用 # 进行注释,# 号后面要空一格。最需要写注释的是代码中那些技巧性的部分:对于复杂的操作,应该在其操作开始前写上若干行注释.;对于不是一目了然的代码,应在其行尾添加注释。
为了提高可读性,注释和代码隔开一定的距离,注释应该至少离开代码2个空格,块注释后面最好多留几行空白再写代码。
当代码更改时,优先更新对应的注释。如果一个注释是一个短语或者句子,它的第一个单词应该大写,除非它是以小写字母开头的标识符(永远不要改变标识符的大小写!)。
如果注释很短,结尾的句号可以省略。块注释一般由完整句子的一个或多个段落组成,并且每句话结束有个句号。在句尾结束的时候应该使用两个空格。
Python中有三种形式的注释:行注释、块注释、文档注释。行注释:注释应解释自己做了什么,而不是对代码本身的解释。有节制地使用行内注释,行内注释是与代码语句同行的注释。行内注释和代码至少要有两个空格分隔
注释由#和一个空格开始。

n = input()
m = input()
t = n / 2     # t是n的一半

块注释:
块注释通常适用于跟随它们的某些(或全部)代码,并缩进到与代码相同的级别。块注释的每一行开头使用一个 # 和一个空格(除非块注释内部缩进文本)。块注释内部的段落通常只有一个 # 的空行分隔。

def FuncName(parameter1,parameter2):

"""

描述函数要做的事情

:param parameter1: 参数一描述(类型、用途等)

:param parameter2: 参数二描述

:return: 返回值描述

"""

要为所有的公共模块,函数,类和方法编写文档说明。非公共的方法没有必要,但是应该有一个描述方法具体作用的注释。这个注释应该在def那一行之后,多行文档注释使用的结尾三引号应该是自成一行。

class SampleClass(object):
    """Summary of class here.

    Longer class information....
    Longer class information....

    Attributes:
        likes_spam: A boolean indicating if we like SPAM or not.
        eggs: An integer count of the eggs we have laid.
    """

    def __init__(self, likes_spam=False):
        """Inits SampleClass with blah."""
        self.likes_spam = likes_spam
        self.eggs = 0

    def public_method(self):
        """Performs operation blah."""

3.空行
顶层函数和类定义,前后用两个空行隔开,编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行,类里面方法定义用一个空行隔开,在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行。

class Class01:
    pass
 
 
class Class02:
    def function_01(self):
        pass
 
    def function_02(self):
        pass

使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。

4.制表符还是空格
不要混用制表符和空格,因为如果混用了,虽然在编辑环境中显示两条语句为同一缩进层次,但因为制表符和空格的不同会导致 Python 解释为两个不同的层次。
在调用 Python 命令行解释器时使用 -t 选项,可对代码中不合法的混合制表符和空格发出警告,使用 -tt 时警告将变成错误,这些选项是被高度推荐的。但是强烈推荐仅使用空格而不是制表符。
空格使用规则:
在二元运算符两边各空一格,比如赋值(=)、比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not),算术操作符两边的空格可灵活使用,但两侧务必要保持一致。不要在逗号、分号、冒号前面加空格,但应该在它们后面加(除非在行尾)。函数的参数列表中,逗号之后要有空格。函数的参数列表中,默认值等号两边不要添加空格。左括号之后,右括号之前不要加添加空格。参数列表, 索引或切片的左括号前不应加空格。当’='用于指示关键字参数或默认参数值时,不要在其两侧使用空格。
正确示例代码:

spam(ham[1], {eggs: 2}, [])

if x == 4:
    print x, y
x, y = y, x

dict['key'] = list[index]

def complex(real, imag=0.0): return magic(r=real, i=imag)
错误示例代码:

spam( ham[ 1 ] , { eggs: 2 } , [ ] )

if x == 4 :
    print x , y
x , y = y , x

dict ['key'] = list [index]

def complex(real, imag = 0.0): return magic(r = real, i = imag)

5.命名规范
模块名命名

模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)

正确

import decoder

import html_parser

不推荐

import Decoder

变量命名
不要使用字母I (小写的L), O (大写的O), I (大写的I)作为单字符的变量名。在有些字体里面,这些字符无法与数字0和1区分。如果想用I, 可使用L代替。变量名尽量小写, 如有多个单词,用下划线隔开。
count = 0
this_is_var = 0

常量或者全局变量命名,全部大写,如有多个单词,用下划线隔开,全⼤写+下划线式驼峰
MAX_CLIENT = 100

函数命名
函数名应该小写,如有多个单词,用下划线隔开。大小写混合仅在为了兼容原来主要以大小写混合风格的情况下使用,保持向后兼容。私有函数在函数前加一个下划线_。

def run():
    pass

def run_with_env():
    pass


class Person():
    def _private_func():
        pass

类命名
类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头。在接口被文档化并且主要被用于调用的情况下,可以使用函数的命名风格代替。对于内置的变量命名有一个单独的约定:大部分内置变量是单个单词(或者两个单词连接在一起),首字母大写的命名法只用于异常名或者内部的常量。

class Farm():
    pass

class AnimalFarm(Farm):
    pass

class _PrivateFarm(Farm):
    pass

类里面函数和方法参数
始终要将self作为实例方法的第一个参数。始终要将cls作为类方法的第一个参数。如果函数的参数名和已有关键字冲突,在最后加大意下划线比缩写或者随意拼写更好。因此class_比clss更好。
特别注意:
不要中英文混编
不要有a、b、c这种没有意义的命名
不要怕名字长就随便缩写,比如person_info 缩写成pi
不要用大小写区分变量类型,比如a是int类型,A是String类型
不要使用容易引起混淆的变量名
bool变量⼀般加上前缀 is_ 如:is_success
变量名不要用系统关键字,如 dir type str等等
以下用下画线作前导或结尾的特殊形式是被公认的:

single_leading_underscore(以一个下画线作前导):例如,“from M import *”不会导入以下画线开头的对象。
single_trailing_underscore
(以一个下画线结尾):用于避免与 Python 关键词的冲突,例如“Tkinter.Toplevel(master, class_=‘ClassName’)”。
__double_leading_underscore (双下画线):从 Python 1.4 起为类私有名。
double_leading_and_trailing_underscore:特殊的(magic) 对象或属性,存在于
用户控制的(user-controlled)名字空间,例如:initimportfile
9 引号用法规则
自然语言使用双引号
机器标识使用单引号
正则表达式使用双引号
文档字符串 (docstring) 使用三个双引号
字符串引号规则:
单引号和双引号字符串是相同的。当一个字符串中包含单引号或者双引号字符串的时候,使用和最外层不同的符号来避免使用反斜杠,从而提高可读性。
在同一个文件中,保持使用字符串引号的一致性。在字符串内可以使用另外一种引号,以避免在字符串中使用。
正确使用示例:

Tim('Why are you hiding your eyes?')
Bob("I'm scared of lint errors.")
Juy('"Good!" thought a happy Python reviewer.')

当且仅当代码中使用单引号’来引用字符串时,才可能会使用三重’''为非文档字符串的多行字符串来标识引用,文档字符串必须使用三重双引号"“”。
12 函数设计规范
函数设计的主要目标就是最大化代码重用和最小化代码冗余。精心设计的函数不仅可以提高程序的健壮性,还可以增强可读性、减少维护成本。
函数设计要尽量短小,嵌套层次不宜过深。 所谓短小, 就是尽量避免过长函数, 因为这样不需要上下拉动滚动条就能获得整体感观, 而不是来回翻动屏幕去寻找某个变量或者某条逻辑判断等。 函数中需要用到 if、 elif、 while 、 for 等循环语句的地方,尽量不要嵌套过深,最好能控制在3层以内。不然有时候为了弄清楚哪段代码属于内部嵌套, 哪段属于中间层次的嵌套, 哪段属于更外一层的嵌套所花费的时间比读代码细节所用时间更多。
尽可能通过参数接受输入,以及通过return产生输出以保证函数的独立性。尽量减少使用全局变量进行函数间通信。不要在函数中直接修改可变类型的参数。函数申明应该做到合理、 简单、 易于使用。 除了函数名能够正确反映其大体功能外, 参数的设计也应该简洁明了, 参数个数不宜太多。 参数太多带来的弊端是: 调用者需要花费更多的时间去理解每个参数的意思,测试的时候测试用例编写的难度也会加大。函数参数设计应该考虑向下兼容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值