【Python从入门到精通】(三)Python的编码规范,标识符知多少?

Python53

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦
这是Pyhon系列文章的第三篇,本文主要介绍Python程序的编码规范。
干货满满,建议收藏,需要用到时常看看。 小伙伴们如有问题及需要,欢迎踊跃留言哦~ ~ ~。

前言

上一篇文章我们介绍如何运行Python程序,如何安装PyCharm开发工具以及如何用PyCharm来运行Python程序,这些都只是开发前的准备工作而已,也就是说仅仅是弄好了脚手架。接下来就是开始编码了。不过在编码之前我们还是先需要了解一下 Python的编码规范。为什么要了解编码规范呢?不看行不行呀! 如果我们想在别人看我们代码的时候大骂一声,卧槽,这代码跟shi一样,鬼看的懂呀。那就不看吧,写自己的代码让别人说去,哈哈哈哈。
【Python从入门到精通】(三)Python的编码规范,标识符知多少?

注释

首先介绍的是Python的注释,Python的注释分为两种:单行注释和多行注释。

  1. 单行注释
    Python使用 # 号作为单行注释的符号,其语法格式为: #注释内容 从#号开始直到这行结束为止的所有内容都是注释。例如:
这是单行注释
  1. 多行注释
    多行注释指一次注释程序中多行的内容(包含一行) ,Python使用三个连续的 单引号''' 或者三个连续的 双引号""" 注释多行内容。其语法格式是如下:
'''
三个连续的单引号的多行注释
注释多行内容
'''

或者

"""
三个连续的双引号的多行注释
注释多行内容
"""

多行注释通常用来为Python文件、模块、类或者函数等添加版权或者功能描述信息(即文档注释)

缩进规则

不同于其他编程语言(如Java,或者C)采用大括号 {}分割代码块,Python采用 代码缩进冒号 : 来区分代码块之间的层次。如下面的代码所示:

a = -100
if a >= 0:
    print("输出正数" + str(a))
    print('测试')
else:
    print("输出负数" + str(a))

其中第一行代码 a = -100和第二行代码 if a >= 0:是在同一作用域(也就是作用范围相同),所以这两行代码并排。而第三行代码 print("输出正数" + str(a)) 的作用范围是在第二行代码里面,所以需要缩进。第五行代码也是同理。第二行代码通过冒号和第三行代码的缩进来区分这两个代码块。
Python的缩进量可以使用空格或者Tab键来实现缩进, 通常情况下都是采用4个空格长度作为一个缩进量的
这里需要注意的是同一个作用域的代码的缩进量要相同,不然会导致IndentationError异常错误,提示缩进量不对,如下面代码所示:第二行代码 print("输出正数" + str(a)) 缩进了4个空格,而第三行代码 print('测试')只缩进了2个空格。

if a >= 0:
    print("输出正数" + str(a))
  print('测试')

在Python中,对于类定义,函数定义,流程控制语句就像前面的 if a>=0:,异常处理语句等,行尾的冒号和下一行缩进,表示下一个代码块的开始,而缩进的结束则表示此代码的结束。

编码规范

说完了代码的缩进规则之后,接下来看看Python的编码规范,Python采用PEP 8作为编码规范,其中PEP是Python Enhancement Proposal(Python增强建议书) 的缩写,8代表的是Python代码的样式指南。这里介绍几个初学者需要掌握的编码规范

  1. 每个import 语句只导入一个模块,尽量避免一次导入多个模块
#推荐
import sys
import os
#不推荐
import sys,os
  1. 不要在行尾添加分号,也不要用分号将两条命令放在同一行,不推荐下面的写法
print('你好');print('我好');
  1. 建议每行不超过80个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠\进行连接。
#推荐
s=('没有耕耘就没有收获,'
   '好好学习天天向上')
#不推荐
s='没有耕耘就没有收获,' \
  '好好学习天天向上'

其他的可参考官网 PEP8官网

标识符命令规范

标识符就是一个名字,就好像是我们每个人都一个属于自己的名字一样的。它的主要作用就是作为变量,函数,类,模块以及其他对象的名称。

标识符遵循的规则

标识符不是随便胡乱命令的,也是要遵循一定的规则的。应该要遵循下列规则

  1. 标识符是由字符(AZ和az)、下划线和数字组成,但第一个字符不能是数字
#合法示范
userId
user_id
user2

非法的标识符

2user
  1. 标识符不能和Python中的保留字相同,有关保留字,后续章节会介绍
  2. Python中的标识符中,不能包含空格、@、%以及$等特殊字符串。比如这样 @user
  3. 在Python中,标识符中的字母是严格区分大小写的,也就是说。两个同样的单词,如果大小写格式不一样,那么代表的意义也是完全不同的,比如,下面这3个变量之间,就是完全独立的,毫无关系
number=2
Number=2
NUMBER=3
  1. Python中,以 下划线开头的标识符有特殊含义,例如:
  2. 以单下划线开头的标识符(如_height),表示不能直接访问的类属性,其无法通过 from ... import * 的方式导入
  3. 以双下划线开头的标识符(如__add)表示类的私有成员
  4. 以双下划线作为开头和结尾的标识符(如__init__)是专用标识符
    6.不同场景中的标识符,其名称也有一定的规范可循
  5. 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 user_login
  6. 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如: com.jay,com.jay.er等
  7. 当标识符用作类名时,应采用单词首字母大写的形式,例如,定义一个学生类,可以命名为Student
  8. 模块内部的类名,可以采用"下划线+首字母大写"的形式,如_Student
  9. 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割
  10. 常量命令全部使用大写字母,单词之间可以用下划线分割。

关键字

说完了标识符的命名规范,本文也接近尾声了,最后要介绍的是Python中的关键字,前面说了标识符的命令不用使用关键字,那么Python中有哪些关键词呢?可以通过如下语句进行查看

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

所有的关键词如下表所示:
表一 Python关键词一览表

and as assert break class continue def del elif else except finally for from False global if import in is lambda nonlocal not None os pass raise return try True while with yield

总结

本文主要介绍了Python的编码规范,包括Python的注释,编码规范,标识符命名等等,希望对读者朋友们有所帮助。

我是码农飞哥,再次感谢您读完本文
全网同名【码农飞哥】。不积跬步,无以至千里,享受分享的快乐
我是码农飞哥,再次感谢您读完本文

Original: https://www.cnblogs.com/Fly-Bob/p/15480145.html
Author: 码农飞哥
Title: 【Python从入门到精通】(三)Python的编码规范,标识符知多少?



相关阅读1

Title: 在Python中将图像转换为ASCII字符照

1. 引言

使用Python进行图像处理,非常快捷方便,往往简短几行代码就可以实现功能强大的效果。在这篇文章中,我们将使用Python来将图像转换为ASCII字符照,如下所示:

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

闲话少说,我们直接开始吧!

2. ASCII字符映射表

首先,我们将创建一个包含所有ASCII字符的字符串,这些字符将用于生成ASCII字符照片。如下:

ascii_characters_by_surface = "`^\",:;Il!i~+_-?][}{1)(|\\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$"

上述字符按照显示时单个字符所占用的空间进行排序,比如字​ ​'​​显示时占有最小的空间,而字符​ ​$​​占用的空间最大。

3. 计算单个像素亮度

我们知道,彩色图像中的单个像素可以表示成一个三元组,其中每个元素取值都介于0和255之间,分别表示红色,绿色和蓝色的值。这些值越高,表示相应通道的亮度越大。例如,白色像素的三元组表示为​ ​(255,255,2555)​​。

这也意味着我们可以得到的单个像素点出亮度的最大值将是765,即​ ​(255,255,255)​​。代码表示如下:

(r, g, b) = pixelpixel_brightness = r + g + bmax_brightness = 255 * 3

4. 将像素转换为ASCII字符

接着我们可以将像素转换为ASCII字符。

首先,我们需要计算亮度权重。为了将亮度权重定义为ASCII字符列表的长度除以最大亮度值,如下:

brightness_weight = len(ascii_characters_by_surface) / max_brightness

之后,对于给定的像素,我们可以从ASCII字符列表中找到其对应的索引,如下所示:

index = int(pixel_brightness * brightness_weight) - 1

最后,我们可以通过返回与此索引对应的字符来实现将单个像素转换为字符:

return ascii_characters_by_surface[index]

5. 转换图像

接着,我们将使用​ ​Pillow ​​模块来加载一张图像,读取其所有像素,并将其转换为元组​ ​(r,g,b)​​的形式。

首先,我们需要导入该模块并读取图像:

from PIL import Imageimage = Image.open('image.jpg')(width, height) = image.size

之后,我们将遍历所有像素并逐个读取:

for y in range(0, height - 1):    for x in range(0, width - 1):        px = image.getpixel((x, y))

我们将这些读取到的每个像素通过映射得到其相应的ASCII字符,并为图像的每一行创建一个输出字符串:

ascii_art = []for y in range(0, height - 1):    line = ''    for x in range(0, width - 1):        px = image.getpixel((x, y))        line += convert_pixel_to_character(px)    ascii_art.append(line)

6. 结果输出

最后,我们将结果写入输出文本文件中:

def save_as_text(ascii_art):    with open("image.txt", "w") as file:        for line in ascii_art:            file.write(line)            file.write('\n')        file.close()

7. 主函数调用

最后,我们编写调用程序如下:

from PIL import Imageascii_characters_by_surface = "`^\",:;Il!i~+_-?][}{1)(|\\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$"def main():    image = Image.open('image.jpg')    # you can first resize the image if needed    # image = image.resize((width, height))    ascii_art = convert_to_ascii_art(image)    save_as_text(ascii_art)if __name__ == '__main__':    main()

8. 输出结果

我们将把所有输出内容写入一个文本文件,所以我们在文本编辑器中打开生成的文件并缩小以查看我们最终的效果,如下:

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

9. 总结

本文重点介绍了如何使用Python来一步一步的实现将图像转化为ASCII字符照,并给出了完整的代码实现。

您学废了嘛?

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

关注上述公众号,后台回复&#x200B;<em>ascii</em>&#x200B;​即可获取完整代码

Original: https://blog.51cto.com/u_15506603/5541967
Author: sgzqc
Title: 在Python中将图像转换为ASCII字符照

相关阅读2

Title: 极客编程python入门-面向对象5/7

面向对象

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

相关概念

1、类(Class):

用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

2、方法:

类中定义的函数。

3、类变量:

类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

4、数据成员:

类变量或者实例变量用于处理类及其实例对象的相关的数据。

5、方法重写:

如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

6、局部变量:

定义在方法中的变量,只作用于当前实例的类。

7、实例变量:

在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。

8、继承:

即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。

9、实例化:

创建一个类的实例,类的具体对象。

10、对象:

通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

语法格式

class ClassName:
<statement-1>
.
.
.
<statement-N>
#!/usr/bin/python3 class MyClass:    """一个简单的类实例"""    i = 12345    def f(self):        return 'hello world' # 实例化类x = MyClass() # 访问类的属性和方法print("MyClass 类的属性 i 为:", x.i)print("MyClass 类的方法 f 输出为:", x.f())

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

Original: https://blog.51cto.com/apple0/5574685
Author: 最爱大苹果
Title: 极客编程python入门-面向对象5/7

相关阅读3

Title: Python批量爬取大众点评数据

众所周知,某点评是一直有JS加密的,所以关于它的外包一直都很贵,有些公司甚至用来面试,可见他的难度。

但是吧,最近他好像没有加密了,这~

不值钱了啊!

那当时就忍不住了,就得用Python开始整活了!

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

【Python从入门到精通】(三)Python的编码规范,标识符知多少?
话不多说,让我们上代码!

; 全部代码

今天就没那么多步骤了,直接上代码!

import requests
import parsel

url = 'https://www.dianping.com/search/keyword/344/0_%E7%81%AB%E9%94%85/p2'
headers = {
    'Cookie': 'fspop=test; cy=344; cye=changsha; _lxsdk_cuid=181f2b8ceedc8-00c68dfc700b1e-c4c7526-384000-181f2b8ceedc8; _lxsdk=181f2b8ceedc8-00c68dfc700b1e-c4c7526-384000-181f2b8ceedc8; _hc.v=fa46cfdd-99f6-80af-c226-f8777fc1f097.1657634607; s_ViewType=10; _lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; Hm_lvt_602b80cf8079ae6591966cc70a3940e7=1657634608,1657690542; lgtoken=0ecd60582-14f9-4437-87ad-7b55881b56df; WEBDFPID=3x389w8ww1vw5vuzy491zvxxu36989x2818u39v38389795895568429-1657776946569-1657690545731QSUUAWGfd79fef3d01d5e9aadc18ccd4d0c95072230; dper=6cfaf0f82f34d241b584d587fc92a7117ba6c082354d350ed861c0a256d00ba3beb93db7dc5485b4e2e4e4085a92126fa2e5f1dbe1b6eaefd1c814167fce943e; ll=7fd06e815b796be3df069dec7836c3df; Hm_lpvt_602b80cf8079ae6591966cc70a3940e7=1657690573; _lxsdk_s=181f60e4e6c-cad-fea-c91%7C%7C40',
    'Host': 'www.dianping.com',
    'Referer': 'https://www.dianping.com/search/keyword/344/0_%E7%81%AB%E9%94%85',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36',
}

response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
href = selector.css('.shop-list ul li .pic a::attr(href)').getall()
print(href)
for index in href:
    html_data = requests.get(url=index, headers=headers).text
    selector_1 = parsel.Selector(html_data)
    title = selector_1.css('.shop-name::text').get()  # 店名
    count = selector_1.css('#reviewCount::text').get()  # 评论
    Price = selector_1.css('#avgPriceTitle::text').get()  # 人均消费
    item_list = selector_1.css('#comment_score .item::text').getall()  # 评价
    taste = item_list[0].split(': ')[-1]  # 口味评分
    environment = item_list[1].split(': ')[-1]  # 环境评分
    service = item_list[-1].split(': ')[-1]  # 服务评分
    address = selector_1.css('#address::text').get()  # 地址
    tel = selector_1.css('.tel ::text').getall()[-1]  # 电话
    dit = {
        '店名': title,
        '评论': count,
        '人均消费': Price,
        '口味': taste,
        '环境': environment,
        '服务': service,
        '地址': address,
        '电话': tel,
        '详情页': index,
    }
    print(dit)

注释我就不注释了,有点赶时间,女朋友喊我去吃饭呢!

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

【Python从入门到精通】(三)Python的编码规范,标识符知多少?
不过没关系,还好我有先见之明,已经录了视频,都发在这里了,代码不明白的话,可以看视频有一步步的讲解。

视频地址:Python爬取大众点评

# 我给大家准备了这些资料:Python视频教程、100本Python电子书、基础、爬虫、数据分析、web开发、机器学习、人工智能、面试题、Python学习路线图、问题解答!
# 都放在这个扣群啦 : 279199867

效果展示

【Python从入门到精通】(三)Python的编码规范,标识符知多少?
本文代码只是爬取了部分内容,视频中还讲解了让数据更好看,多页爬取,保存Excel表格等等。

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

给大家展示一下效果

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

【Python从入门到精通】(三)Python的编码规范,标识符知多少?

好了,今天的分享就到这,下次再见!

Original: https://www.cnblogs.com/hahaa/p/16499782.html
Author: 轻松学Python
Title: Python批量爬取大众点评数据