8 python快速上手

总结

  • 总结
    • 1. 代码规范
      • 1.1 名称
      • 1.2 注释
      • 1.3 todo
      • 1.4 条件嵌套
      • 1.5 简单逻辑先处理
      • 1.6 循环
      • 1.7 变量和值
    • 2.知识补充
      • 2.1 pass
      • 2.2 is 比较
      • 2.3 位运算
    • 3.阶段总结

各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!

总结

1. 代码规范

程序员写代码是有规范的,不只是实现功能而已。

1.1 名称

在Python开发过程中会创建文件夹/文件/变量等,这些在命名有一些潜规则(编写代码时也要注意pep8规范)。

  • 文件夹,小写 & 小写下划线连接,例如:commandsdata_utils等。

  • 文件,小写 & 小写下划线连接,例如:page.pydb_convert.py等。

  • 变量

    • 全局变量,大写 & 大写下划线连接,例如:NAME = "武沛齐"BASE_NAME = 18
    • 局部变量,小写 & 小写下划线连接,例如:data = [11,22,33]user_parent_id = 9等。

1.2 注释

作为程序员,写代码注释是非常基础且有用的技能,方便以后对代码进行维护和理解。

  • 文件夹
    在这里插入图片描述

  • 文件注释

    """
    这个文件主要为项目提供工具和转换的功能,初次之外还有日志....
    例如:.........
    """....
    
  • 代码注释

    name = "alex"
    # 在名称后面添加一个大烧饼
    data = name + "dsb" 
    print(data)
    
    name = "alex"
    """
    在名称后面添加一个大烧饼,内部的实现机制:1. xxx2. xxx3. xx
    """
    data = name + "dsb" 
    print(data)
    

1.3 todo

基于注释可以实现todo注释的效果,例如:
在这里插入图片描述

1.4 条件嵌套

以后写条件语句一定要想办法减少嵌套的层级(最好不要超过3层)。

在这里插入图片描述

1.5 简单逻辑先处理

示例1:

goods = [{"name": "电脑", "price": 1999},{"name": "鼠标", "price": 10},{"name": "游艇", "price": 20},{"name": "美女", "price": 998}
]
for index in range(len(goods)):item = goods[index]print(index + 1, item['name'], item['price'])while True:num = input("请输入要选择的商品序号(Q/q):")  # "1"if num.upper() == "Q":breakif num.isdecimal():num = int(num)if 0 < num < 5:target_index = num - 1choice_item = goods[target_index]print(choice_item["name"], choice_item['price'])else:print("序号范围选择错误")else:print("用户输入的序号格式错误")

示例2:

goods = [{"name": "电脑", "price": 1999},{"name": "鼠标", "price": 10},{"name": "游艇", "price": 20},{"name": "美女", "price": 998}
]
for index in range(len(goods)):item = goods[index]print(index + 1, item['name'], item['price'])while True:num = input("请输入要选择的商品序号(Q/q):")  # "1"if num.upper() == "Q":breakif not num.isdecimal():print("用输入的格式错误")breaknum = int(num)if num > 4 or num < 0:print("范围选择错误")breaktarget_index = num - 1choice_item = goods[target_index]print(choice_item["name"], choice_item['price'])

1.6 循环

尽量少循环多干事,提高代码效率。

key_list = []
value_list = []info = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}for key, value in info.items():key_list.append(key)value_list.append(value)
info = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}key_list = list(info.keys())
value_list = list(info.values())

1.7 变量和值

# 推荐
name = "武沛齐"
age = 19
# 不推荐
name="武沛齐"
age= 18

可以基于Pycharm的格式化工具来实现自动处理。

python代码规范:PEP8规范。

2.知识补充

2.1 pass

一般Python的代码块是基于 :缩进来实现,Python中规定代码块中必须要有代码才算完整,在没有代码的情况下为了保证语法的完整性可以用pass代替,例如:

# 其他编程语言
if 提交{...
}else{....
}
if 条件 :pass
else:pass
if 条件:pass
else:pass
for i in range(xxx):pass

2.2 is 比较

is==的区别是什么?

  • ==,用于比较两个值是否相等。
  • is,用于表示内存地址是否一致。
# 示例1
v1 = []
v2 = []print( v1 == v2 )  # True,两个值相当
print( v1 is v2 )  # False,不属于同一块内存。
# 示例2
v1 = []
v2 = v1print( v1 == v2 )  # True,两个值相当
print( v1 is v2 )  # True,属于同一块内存。
# 示例3
v1 = None
v2 = Noneprint(v1 == v2)  # True,两个值相当
print(v1 is v2)  # True,属于同一块内存。

2.3 位运算

计算机底层本质上都是二进制,我们平时在计算机中做的很多操作底层都会转换为二进制的操作,位运算就是对二进制的操作。

  • &,与(都为1)

    a = 60            # 60 = 0011 1100 
    b = 13            # 13 = 0000 1101 c = a & b         # 12 = 0000 1100
    
  • |,或(只要有一个为1)

    a = 60            # 60 = 0011 1100 
    b = 13            # 13 = 0000 1101 c = a | b         # 61 = 0011 1101 
    
  • ^,异或(值不同)

    a = 60            # 60 = 0011 1100 
    b = 13            # 13 = 0000 1101 c = a ^ b         # 49 = 0011 0001 
    
  • ~,取反

    a = 60            #  60 = 0011 1100 c = ~a;           # -61 = 1100 0011
    
  • <<,左移动

    a = 60            #  60 = 0011 1100
    c = a << 2;       # 240 = 1111 0000
    
  • >>,右移动

    a = 60            # 60 = 0011 1101 
    c = a >> 2;       # 15 = 0000 1111
    

平时在开发中,二进制的位运算几乎很好少使用,在计算机底层 或 网络协议底层用的会比较多,例如:

  • 计算 2**n

    2**0    1 << 0   1     1
    2**1    1 << 1   10    2
    2**2    1 << 2   100   4
    2**3    1 << 3   1000  8
    ...
    
  • 计算一个数的一半【面试题】

    v1 = 10 >> 1 
    print(v1) # 值为5v2 = 20 >> 1
    print(v2) # 值为 10
    
  • 网络传输数据,文件太大还未传完(websocket源码为例)。

    1个字节         第2个字节         ... 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-------+-+-------------+-------------------------------+
    |F|R|R|R| opcode|M| Payload len |    Extended payload length    |
    |I|S|S|S|  (4)  |A|     (7)     |             (16/64)           |
    |N|V|V|V|       |S|             |   (if payload len==126/127)   |
    | |1|2|3|       |K|             |                               |
    +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +FIN位置是0,表示这是一部分数据,后续还有数据。
    FIN位置是1,表示这是最后数据,已发送完毕。
    
    # 例如:接收到的第一个字节的值为245(11110101),让v的二进制和 1000 0000 做 & 与运算。v = 245   # 245 11110101# 128 1000000010000000data = v & 128
    if data == 0:print("还有数据")
    else:print("已完毕")
    

3.阶段总结

可使用思维导图( xmind 软件),对阶段知识点的内容进行梳理,将知识梗概和重点写出来,也便于以后的回顾和复习。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/417993.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓平板局域网内远程控制工控机方法

安卓平板局域网内远程控制工控机方法 将所需要远程控制的工控机通过网线连接到具有WiFi功能的路由器上&#xff0c;将安卓平板连接上WiFi&#xff0c;如下图所示 下载NoMachine远程软件安装包&#xff0c;官网地址&#xff1a;https://www.nomachine.com/ 点击Download now按钮…

Hive数仓框架详解

Hive框架详解 1、Hive的介绍 ​ Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供类SQL查询功能。 ​ 本质是将SQL转换为MapReduce程序。 ​ 主要用途&#xff1a;用来做离线数据分析&#xff0c;比直接用MapRed…

Pandas.DataFrame.groupby() 数据分组(数据透视、分类汇总) 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.1.2 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 Pandas稳定版更新及变动内容整合专题&#xff1a; Pandas稳定版更新及变动迭持续更新。 Pandas API参…

Node.js 使用 cors 中间件解决跨域问题

CORS 跨域资源共享 什么是 CORS cors 是 Express 的一个第三方中间件。通过安装和配置 cors 中间件&#xff0c;可以很方便地解决跨域问题。 CORS &#xff08;Cross-Origin Resource Sharing&#xff0c;跨域资源共享&#xff09;由一系列 HTTP 响应头组成&#xff0c;这些…

云服务器基于Centos创建个人云盘实践经验分享

文章目录 安装运行Cloudreve安装ossfscentos更换yum源 配置ossfs挂载oss存储配置开机启动 配置cloudreve推荐阅读 安装运行Cloudreve 执行如下命令&#xff0c;下载cloudreve安装包。 wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/cloudreve_3.3.1_linux_amd64.tar…

【现代密码学基础】详解完美安全与不可区分安全

目录 一. 介绍 二. 不可区分性试验 三. 不可区分性与完美安全 四. 例题 五. 小结 一. 介绍 敌手完美不可区分&#xff0c;英文写做perfect adversarial indistinguishability&#xff0c;其中adversarial经常被省略不写&#xff0c;在密码学的论文中经常被简称为IND安全。…

海外盲盒系统搭建,盲盒出海的关键方式

随着我国盲盒的爆火&#xff0c;潮玩市场中的各大品牌都陆续加入到了盲盒赛道中&#xff0c;盲盒市场持续火热。 与此同时&#xff0c;盲盒出海成为了这两年的一大趋势&#xff0c;预计今年全球潮玩市场规模可以达到448亿美元&#xff0c;增长速度非常快。海外广阔的市场前景将…

回溯法:0-1背包问题

问题描述 给定种物品和一背包。 物品的重量是&#xff0c; 其价值为&#xff0c;背包的容量为 c。 问应该如何选择装入背包中的物品&#xff0c;使得装入背包中物品的总价值最大&#xff1f;注意物品不重复! 实例&#xff1a;物品价值V{12, 11, 9, 8}, 物品重量W{8, 6, 4, 3},…

不用VBA,如何表格中写公式实现汉字转拼音?

Excel网络函数库自2018年发布以来&#xff0c;我们几乎每天都在帮助用户解决各种办公自动化问题。解决的问题多了&#xff0c;慢慢的我们对用户的业务场景、问题来源、困难诉求有了基本认识。为了更好的帮助大家&#xff0c;未来&#xff0c;我们将对不同职业的办公效率改善问题…

(蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)

能够表示为某个整数的平方的数字称为“平方数 虽然无法立即说出某个数是平方数&#xff0c;但经常可以断定某个数不是平方数。因为平方数的末位只可能是:0,1,4,5,6,9 这 6 个数字中的某个。所以&#xff0c;4325435332 必然不是平方数。 如果给你一个 2 位或 2 位以上的数字&am…

Pandas中不同类型的join操作

Pandas模块包含各种功能&#xff0c;可以在数据框上执行各种操作&#xff0c;如join&#xff0c;concatenate&#xff0c;delete&#xff0c;add等。在本文中&#xff0c;我们将讨论可以在Pandas数据框上执行的各种类型的join操作。Pandas中有五种类型的Join。 为了理解不同类…

systemverilog/verilog文件操作

1、Verilog文件操作 Verilog具有系统任务和功能,可以打开文件、将值输出到文件、从文件中读取值并加载到其他变量和关闭文件。 1.1 、Verilog文件操作 1.1.1、打开和关闭文件 module tb; // 声明一个变量存储 file handler integer fd; initial begin // 以写权限打开一个文…