Python从入门到精通(从小白到高级)(新版)

223 篇文章 3 订阅
129 篇文章 1 订阅

前言

1 深入接触Python:功能特性和优势

-

作为有多年软件开发经验的老程序员,即使没有机会使用Python做软件项目,也多少会接触一点,形象的比喻:即使没吃过猪肉,也应该见过猪跑。而事实上,Python是一门被广泛使用的编程语言,诞生于1991年,至于是谁发明的,感兴趣的小伙伴可以自己去脑补一下。不同的编程语言,擅长的领域各不相同,Python主要擅长以下几个方面:

【----帮助Python学习,以下所有学习资料文末免费领!----】

(1)服务器端的网页开发编程。

(2)普通的应用软件开发。

(3)数学计算。

(4)系统脚本。

(5)人工智能。

在具体的功能实现方面,Python可以做以下事情:

(1)在服务器端创建一个网页应用。

(2)连接数据库以及读写文件。

(3)处理大数据做复杂的数学计算。

(4)分付的软件开发包,快速提升软件开发效率。

在这里插入图片描述

Python的这些功能特性,与这门编程语言的发展过程密不可分,从上图其演进过程不难看出,其兴起的1994年,计算机网络和分布式计算已经成为编程计算的趋势,而作为面向未来的编程语言,其设计之初也充分考虑了这一点。为了完成一些软件需求,我们选择Python,还因为以下几个原因:

(1)Python可以工作在不同的平台上,包括Windows,Mac OS,Linux,树莓派(Raspberry Pi)等等。

(2)Python的语法结构很简单,类似于英语的自然语言。

(3)Python的简单语法结构让实现相同的功能,需要的代码行数更少。

(4)Python是解释型语言,写好的代码,可以立即执行,制作项目原型非常方便。

(5)Python的开发方式灵活,可以面向过程,也可以面向对象,同时也支持面向功能。

目前Python的主流版本是Python 3,但是依然有一些项目用Python 2。编写Python可以直接使用文本编辑器,如果你对开发环境没有特别要求,甚至可以直接使用Windows自带的记事本。网上关于这方面种草的文章很多,也往往让刚入门的程序员不知道选择哪个开发环境最好。根据笔者这样的老程序员的经验,优先选择的是PyCharm,其次是VS Code,前者使用其社区版本(Community)即可,后者是小家子气的微软贡献的免费软件。

在语法结构上,主流的其他的编程语言基本要通过分号或者是花括号来换行,而Python语言的换行符号就是用来标志记一个程序指令执行结束的。我们使用其他语言编写一个函数,基本上离不开class、function之类开头和结束标志, Python则直接使用每一行开始的留白和空格来表示,这些操作毫无疑问会提高我们写代码的效率。

.

2 理解Python的强大:结盟的重要性

-

上面说了Python语言的很多好处,那么我们如何入手Python编程呢?

其实任何一门编程语言,大家想要实现从入门到精通,都要树立一个意识:千里之行始于足下,老程序员走的路多,对于一条新的路,哪些地方可能会有坑,大多数情况下,会提前做出判断,这是经验所发挥的作用。

我们学习Python编程,这几个概念需要记住:

(1)编程语言的解释器或编译器:Python是解释型语言,所以只要安装解释器就可以了,解释器就是可以运行的python.exe,将这个文件所在文件夹放在操作系统可以找到路径中。

(2)编程语言的语法:这是程序员和编程语言沟通的桥梁,如果不掌握语法,相当于是你和这显示器或编译器无法沟通,因此,Python也不例外。最基础的语法包括变量,数据类型,运算服务条件判断语句函数和类的定义以及函数库的引用。

(3)常用的软件开发包和库函数:所谓的常用,主要包括和系统的交互,如查询程序运行的操作系统的一些参数以及通过请求操作系统的接口,实现对文件的读写等操作,除了跟运行的操作系统的交互之外,我们还需要一些常用的输入输出函数,特别是写日志记录的函数,这方面往往被菜鸟程序员忽略。

除了以上三个基础的概念之外,在Python中我们不得不说其丰富的扩展库,这也是Python最引以为豪的地方,也是Python成为被广泛使用的编程语言的主要原因之一。可以形象的理解为:一个人的力量毕竟势单力薄,但是你与很多人结盟,大家分别贡献各自的力量,你有能力集合并运营,这才是真正的强大。Python就是这样的,他的“强”,真正彰显了结盟的重要性,具体的体现,就是“扩展库”。

在这里插入图片描述

上图是一段简单的Python代码的截图,虽然刚开个头,我们已经看到这段代码引用很多强大的扩展库,离开这些扩展库,Python跟其他的编程语言也就没有什么太大的区别了。

Python这门开发语言的扩展库很多,比如我们平时使用频率非常高的Web端的开发框架Flask和Django,用于数据处理的numpy和pandas,以及绘图工具turtle(常常被用于少儿编程入门第一课必学)。

Python这门编程语言更广泛的应用是在大数据处理和人工智能领域。Google早期对于人工智能领域的研究以及机器学习、神经元智能感知的计算等,大多数都是使用Python语言编写的,所以我们掌握了这门开发语言,在web3.0和元宇宙这样的大趋势背景下,可以更好的根据客户需求,创建项目原型,快速迭代开发。

这些扩展库为Python开发提供了丰富的可扩展框架,可以帮助我们快速搭建应用软件的基础架构,降低数据库连接以及增删改查的代码复杂度,有一些甚至优化了缓存读写机制,以提高数据操作的效率。

基于以上内容,老程序员要跟小伙伴们分享的基本就完成了,剩下的工作就是编写Python代码了。任何一门编程语言都是熟能生巧,在实际的项目开发和部署运营中不断深入对其功能特性的理解。如果仅停留在教程和课程设计案例上,像Python这样的开发语言,即使用了很久,可能还只是停留在表面,抓到一点皮毛而已。

.

3 Python的基础语法和常用数据类型

-

以下这部分对于老司机来说几乎忽略,如果不跟其他编程语言横向对比的话。所以这部分内容建议阅读的时候,根据各自的代码编程经验,想一想相同的语法规则,例如函数、类等概念,在C++、Java、PHP、GO、C#等环境中是如何实现的。

3.1 函数的定义与调用

Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):
    函数体

以下是一个具体的实例,我们先导入logging包,定义logit函数来代为实现logger.info的功能:

import logging

def logit(log_info):
    logger.info(log_info)

#logit调用
logit('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')

调用logit输出日志信息如下,其中的日期时间是有扩展库logging自动生成的。

2023-04-14 10:48:17,738 [abot_tools.py - L:37] - INFO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [__main__ - logit]

3.2 类的定义与调用

我们以类Abot_Config_Yaml为例来演示这个过程。

构造函数设置self.filename和self.config两个成员变量,方便在类里面和实例中调用这两个变量;而类方法的定义,也是为了在类和实例中方便调用。

以下实例中,load_config类方法,实现读取一个文件,把读取出来的内容传给yaml对象,在构造函数中定义的self.config成员变量,通过调用load_config类方法获取值。

import yaml
import os

class Abot_Config_Yaml(object):
    def __init__(self, filename):


        print('当前工作目录 os.getcwd()  ==>> %s' % os.getcwd() )

        current_path = os.path.dirname(__file__)
        print('配置文件操作的class所在目录 os.path.dirname  ==>> %s' % current_path)

        self.filename = os.path.dirname(current_path) + '/config/' + filename

        print('配置文件yaml的路径  ==>> %s' % self.filename)

        self.config = self.load_config()

    def load_config(self):
        with open(self.filename, 'r', encoding='utf-8') as f:
            config = yaml.load(f, Loader=yaml.FullLoader)
        return config

    def get_setting(self, group_name):
        return self.config[group_name]

    def SavePath(self):
        return self.config['SAVEPATH']

3.3 包和库的引用

我们以JSON包来解释这个过程,因为JSON数据在不同的编程语言和功能模块中作为接口数据交换格式,已经被广泛应用。引用json包后,我们使用json包中的loads函数将json格式的内容转换成python字典对象。

import json

create_task_dict = json.loads('''
    {
    "humanid": 83,
    "human_position": {
        "x": 50,
        "y": 50
    },
    "human_size": {
        "width": 1080,
        "height": 1920
    },
    "stageid": 59,
    "ttsid": 60,
    "video_name": "视频的名称",
    "input_text": "输入的文字内容",
    "background_image": "https://yanyubao.tseo.cn/static/images/xxxxx.jpg",
    "input_voice": "enim magna voluptate"
}
        ''')

print('使用print直接输入JSON对象:')
print(create_task_dict)

print('\n')
print('通过json.dump格式化JSON对象并由print打印出来:')
# 美化显示JSON,显示中文,indent占位4个空格。
json_formatted_str = json.dumps(create_task_dict, ensure_ascii=False, indent=4)
print(json_formatted_str)

输出值为字典对象:

使用print直接输入JSON对象:
{'humanid': 83, 'human_position': {'x': 50, 'y': 50}, 'human_size': {'width': 1080, 'height': 1920}, 'stageid': 59, 'ttsid': 60, 'video_name': '视频的名称', 'input_text': '输入的文字内容', 'background_image': 'https://yanyubao.tseo.cn/static/images/xxxxx.jpg', 'input_voice': 'enim magna voluptate'}


通过json.dump格式化JSON对象并由print打印出来:
{
    "humanid": 83,
    "human_position": {
        "x": 50,
        "y": 50
    },
    "human_size": {
        "width": 1080,
        "height": 1920
    },
    "stageid": 59,
    "ttsid": 60,
    "video_name": "视频的名称",
    "input_text": "输入的文字内容",
    "background_image": "https://yanyubao.tseo.cn/static/images/xxxxx.jpg",
    "input_voice": "enim magna voluptate"
}

3.4 列表、字典、元组和集合

Python代码中,列表、字典、元组和集合是我们最常用四种数据类型,必须区分他们的区别。我们需要搞清楚在Python中的列表、字典、元组和集合四个概念的关系,才能更好的理解这门编程语言。这里主要通过代码实例说明这4种数据类型的区别,至于这些链式结构的增删改查,可以根据具体的使用场景再组织代码。

在这里插入图片描述

在这里插入图片描述

3.4.1 列表

我们用[]初始化列表new_img_list,添加列表元素时调用append方法

new_img_list = []

new_img_item = {'seq':1}
new_img_list.append(new_img_item)

new_img_item = {'seq':2}
new_img_list.append(new_img_item)

new_img_item = {'seq':3}
new_img_list.append(new_img_item)

print(new_img_list)

输出的内容如下:

[{'seq': 1}, {'seq': 2}, {'seq': 3}]

3.4.2 字典

空字典初始化用{},这里我们设置seq序号为1,作为new_img_item的初始化。

字典通过一个键对应一个值的方式直接添加字典元素,和更改键对应的值。我们可以通过字典的键,直接访问对应键里的值。

new_img_item = {'seq':1}
new_img_item['type'] = '4:3'
new_img_item['url'] = 'http://xcxxxxxxxx'

print(new_img_item)

输出的内容如下:

{'seq': 1, 'type': '4:3', 'url': 'http://xcxxxxxxxx'}

3.4.3 元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可,代码实例如下:

today_work = ('完成延誉宝APP下载二维码更新', '新增小程序分享链接设置', '摸鱼')
work_time_plan = (3, 3, 1)

print('打印两个元组:')
print(today_work)
print(work_time_plan)

print('连接两个元组:')
print(today_work + work_time_plan)

print('看今天的第2项工作:')
print(today_work[1])

print('摸鱼完成,删除今天的工作:')
del today_work

try:
    print(today_work)
except NameError:
    print('元组 today_work 已经删除')
    pass

回应的输入内容如下:

打印两个元组:
('完成延誉宝APP下载二维码更新', '新增小程序分享链接设置', '摸鱼')
(3, 3, 1)
连接两个元组:
('完成延誉宝APP下载二维码更新', '新增小程序分享链接设置', '摸鱼', 3, 3, 1)
看今天的第2项工作:
新增小程序分享链接设置
摸鱼完成,删除今天的工作:
元组 today_work 已经删除

3.4.4 集合

集合(set)是一个无序的不重复元素序列(列表),可以使用大括号 { } 或者 set() 函数创建集合;列表创建使用的是方括号[ ]。创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典,所以创建集合的时候,建议统一使用set函数,以避免跟“字典”这个概念混淆;字典创建是通过键值对的形式,而集合则没有键值对的。

创建的示例代码如下

set_test = set()
set_test.add('多级分销')
set_test.add('会员二维码')
set_test.add('推荐者关系')

print(set_test)

输出的内容如下,像字典,但是却没有键值对;像列表,但是又用{}开始和结尾。

{'多级分销', '会员二维码', '推荐者关系'}

以上是从一个老程序员的角度对Python编程的理解,希望能够对大家所有帮助。后续我们准备对数据库、文件、网址的读写做总结,对Python中常用的方法和函数做总结,同时对Flask这个基础框架的使用做说明。通过对剩下的这几个知识点的补充,Python开发的拼图基本完结。

读者福利:如果大家对Python感兴趣,这套python学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

爬虫与反爬虫攻防教程包,含15个大型网站迫解

爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
或者

点此链接】领取

好文推荐

了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835

了解python的兼职副业:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 第1章 Python 处理 cassandra 升级后的回滚脚本 第 2 章 多套方案来提高 python web 框架的并发处理能力 第 3 章 python 写报警程序中的声音实现 winsound 第 4 章 一个脚本讲述 python 语言的基础规范,适合初学者 第 5 章 python 计算文件的行数和读取某一行内容的实现方法 第 6 章 python 中用 string.maketrans 和 translate 巧妙替换字符串 第 7 章 python linecache 模块读取文件用法详解 第 8 章 python 调用 zabbix 的 api 接口添加主机、查询组、主机、模板 第 9 章 python+Django 实现 Nagios 自动化添加监控项目 第 10 章 通过 python 和 websocket 构建实时通信系统[扩展 saltstack 监控] 第 11 章 关于 B+tree (附 python 模拟代码) 第 12 章 Python 编写的 socket 服务器和客户端 第 13 章 python 之 MySQLdb 库的使用 第 14 章 python 监控文件或目录变化 第 15 章 Mongodb 千万级数据在 python 下的综合压力测试及应用探讨 第 16 章 通过 memcached 实现领号排队功能及 python 队列实例. 第 17 章 python 之利用 PIL 库实现页面的图片验证码及缩略图 第 18 章 如何将 Mac OS X10.9 下的 Python2.7 升级到最新的 Python3.3 第 19 章 使用 python 构建基于 hadoop 的 mapreduce 日志分析平台 第 20 章 报警监控平台扩展功能 url 回调的设计及应用 [python 语言] 第 21 章 服务端 socket 开发之多线程和 gevent 框架并发测试[python 语言] 第 22 章 利用 pypy 提高 python 脚本的执行速度及测试性能 第 23 章 python 实现 select 和 epoll 模型 socket 网络编程 第 24 章 对 Python-memcache 分布式散列和调用的实现 第 25 章 Parallel Python 实现程序的并行多 cpu 多核利用【pp 模块】 第 26 章 关于 python 调用 zabbix api 接口的自动化实例 [结合 saltstack] 第 27 章 Python 批量更新 nginx 配置文件 第 28 章 Python 通过 amqp 消息队列协议中的 Qpid 实现数据通信 第 29 章 python simplejson 模块浅谈 第 30 章 python Howto 之 logging 模块 第 31 章 Python FAQ3-python 中 的原始(raw)字符串
引用提到,Python语言官方建议使用四个空格来缩进代码,并且不使用大括号来表示代码块。这是Python的一个特点。引用中介绍了在Python中创建集合、向集合中添加和删除元素的方法,以及集合的交集、并集和差集运算的示例代码。引用展示了使用format()函数来格式化输出字符串的示例代码。 如果你希望学习Python从入门到精通的笔记,我建议你可以从以下几个方面入手: 1. 基础语法:了解Python的基本语法,如变量、数据类型、运算符和表达式等。 2. 控制流程:学习条件语句和循环语句,如if语句、for循环和while循环等。 3. 函数和模块:掌握定义和调用函数的方法,以及使用模块扩展Python的功能。 4. 数据结构:学习列表、元组、字典和集合等常用的数据结构,了解它们的特点和用法。 5. 文件操作:学习如何读写文件,以及处理文件中的数据。 6. 异常处理:了解如何处理异常,使程序在出错时能够优雅地处理错误。 7. 面向对象编程学习面向对象的思想和Python中的类、对象和继承等概念。 8. 进阶主题:深入学习Python高级特性,如迭代器、生成器、装饰器和多线程等。 以上是我给出的一些建议,希望对你学习Python有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python学习——从入门到精通学习笔记)](https://blog.csdn.net/m0_46968642/article/details/122086059)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [python从入门到精通-新手学习笔记 第六章:字典与集合](https://blog.csdn.net/weixin_45694997/article/details/107708392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值