《Python编程从入门到实战》学习心得

一、前言

之前,项目后台基本都是使用 Java 的 SpringBoot 框架完成的,
Python 自去年到现在,一直以来,都是玩着学的,没有想过要应用到项目上。
但近来,科技园这边的吴老师,建议项目中使用 Python 的 Django 框架做后台,因其容易拓展、维护等,这是笨重的 Java 难以企及的。

是时候认真对待 Python ,近来其也火得不行了~
花了一天跳读了一本评价极好的书《Python编程从入门到实战》,以复习一下之前的 Python 基础,同时做了一些小 demo,同时借机对比了 C++、Java、JavaScript 等语言的基础,像读小说般轻松有趣,相当不错的一次体验,分享一下
这里写图片描述

推荐 Python基础 学习网站:
子雨大数据之Spark入门教程(Python版)
Python教程 - 廖雪峰的官方网站
编程小白的第一本 Python 入门书

二、demo

Python解释器有两种,也就是说有两种方式执行Python代码——①交互式编程、②脚本式编程
很多初始教程采用交互式编程
这里笔者借助 pycharm,采用脚本式编程。

1.数据类型

# 1、全体小写
print('Itaem'.lower())

# 2、全体大写
print('Itaem'.upper())

# 3、连接+
print('Itaem'+'团队')

# 4、转义:和当年 C++ 课设常用的‘UI’符号一样作用
print('方向:\n\t大数据\n\t云计算\n\t人工智能')

# 5、去空:lstrip 去左空、rstrip 去右空
print('----'+'  ITAEM  '.strip()+'----')

# 6、乘方:Python 特色
print(2**3)

# 7、浮点:和 C++ 一致
print(2*0.3,3/2,3.0/2)

# 8、字符+ 数字:和 Java 不一样,得先转换先
print('ITAEM有'+str(15)+'个成员')

# 9、求模:可以 %2 根据 1/0  定 奇偶
print(5%2)

2.列表

# 1、列表 CRUD
lang=['Java','JavaScript','Python']
# ① 查
# 第一个元素
print(lang[0])
# 最后一个元素,当len=0 时报错,负数即从末尾算起
print(lang[-1])
# ② 改
lang[0]='Go'
print(lang)
# ③ 增
lang.append('php')
print(lang)
# ④ 删
del lang[0]
print(lang)
# ⑤ 删末、用之
print(lang.pop())
print(lang)
# ⑥ 删值:只删除第一个指定的值
lang.remove('JavaScript')
print(lang)


# 2、列表 组织
lang=['Java','C','Python']
# ① 永久排序:
# Ⅰ、正:按字母
lang.sort()
print(lang)
# Ⅱ、反:按字母
lang.sort(reverse=True)
print(lang)
# ② 临时排序:只排序显示本次
print(sorted(lang))
# print(sorted(lang,reverse=True)) # 反
print(lang)
# ③ 倒排序
lang.reverse()
print(lang)
# ④ 长度
print(len(lang))

# 3、列表 遍历
lang=['Java','C','Python']
# ① for in:和 ES 差不多,就省了( )
for l in lang:
    print(l)
# ② 数值
for v in range(3,9):
    print(v)
# ③ 数值->列表
nums=list(range(3,9))
print(nums)
# ④ 统计数字列表
# 最小
print(min(nums))
# 最大
print(max(nums))
# 平均
print(sum(nums))
# ⑤ 列表解析
squares=[v**2 for v in range(3,9)]
print(squares)
# ⑥ 切片
print(squares[:3])
print(squares[0:3])
print(squares[0:])

3.元组

ssh=('Spring','Struts2','Hibernate')
print(ssh)
print(ssh[0])
# ① 元组不能修改
# ssh[0]='xxx' # 报错
# ② 遍历
for v in ssh:
    print(v)

4.字典

# 1、创建:基本是 JSON 串、可嵌套
program={
    'C++':'good',
    'Java':'well',
    'Python':['perfect', 'powerful'],
    'other':{
        'php':'easy',
        'C#':'windows'
    }
}
print(program)
# 2、查
print(program['Java'])
# 3、增
program['Go']='excellent'
print(program)
# 4、改
program['C++']='common'
print(program)
# 5、删
del program['C++']
print(program)
# 6、遍历key-value
for k,v in program.items():
    print(k,v)
# 7、遍历key、排序
for k in sorted(program.keys()):
    print(k)
# 8、遍历value:value 嵌套,排不了序
for v in program.values():
    print(v)

这里写图片描述

5.流程控制

# 1、if-elif-else 判断
SSM=['Spring','SpringMVC','MyBatis']
# 列表部位空返回 True,否则 False
if SSM:
    print('SSM不为空')
elif 'Hibernate' not in SSM:
    print('Hibernate 不属于SSM系列')
else:
    print('结束')

# 2、input 输入:默认字符串
# name=input('your name')
# print('hello',name)
# age=int(input('your age')) # 字符转数值
# if 18==age:
#     print('perfect!')

# 3、while 循环:break 退出、continue 跳过
i=0
total=0
while i<=100:
    i = i + 1
    if i==5:
        break
    if i==4:
        continue
    total=total+i
print(total)

6.函数

import mymodule  as s

# 1、定义函数:传参
def sayHello(name,msg='excellent~'):
    print(name,msg)
    return 'that`s all'

# 2、参数顺序
sayHello('linhongcun!','well done~') # linhongcun! well done~
sayHello(msg='good~',name='larger5!') # larger5! good~

# 3、默认值:和 C++ 一致
sayHello(name='ITAEM!') # ITAEM excellent~
sayHello('ITAEM!') # ITAEM excellent~

# 4、返回值
print(sayHello('04008'))

# 5、列表参数
def update(list):
    list.append('55开')
# ① 原件
list=['Python','Java']
update(list)
print(list)
# ② 副本:禁止修改列表
update(list[:])
print(list)

#  6、不定参数
def show(*lan):
    print(lan)
show('Python')
show('Python','JavaScript')

7.类

# 继承 object
class People():
    def __init__(self,hobby='bb'):
        self.hobby=hobby

class Student(People):

    # 构造方法
    def __init__(self,hobby='bb',name='lvcha',age=15):
        super().__init__(hobby)
        self.name=name
        self.age=age

    # 类似 Java 的 toString
    def __str__(self):
        return str(self.hobby+self.name+str(self.age))

    # 定义类 内部函数
    def showMSG(self):
        print('your name:',self.name)
        print('your age',self.age)

s1=Student('progra','linhongcun',21)
print(s1.hobby)
print(s1)

8.文件

# 1、传统打开、读取、关闭:和 C++ 基本一致
file1=open('xxx.txt','r') #注意路径
#全部输入,打成一行
content=file1.readlines()
print(len(content))
print(content)
file1.close()

# 2、with 在不需要访问文件后将自动关闭 ✔
with open('xxx.txt','r') as file2:
    print(file2.read())

# 3、新建写入
with open('zzz.txt','w') as file3:
    file3.write('I like programming\n')
    file3.write('I love you\n')

# 4、追加
with open('zzz.txt','a') as file4:
    file4.write('I can`t forget you\n')

9.异常

# 1、try-except-else
try:
    # print(1/0)
    print(2/5)
except ZeroDivisionError:
    print('fail by zero')
else:
    print('ok')

10.JSON

import json

# 列表
language1=['Python','Java','JavaScript']
# 字典
language2={
    'Python':'powerful',
    'Java':'famous',
    'JavaScript':'developing'
}
# 元组
language3=('C++','C','C#','Go')

# 1、JSON 写入文件
with open('yyy.txt','w') as file1:
    # json.dump(language1,file1)
    json.dump(language2,file1)
    # json.dump(language3,file1)

# 2、读取 JSON 文件
with open('yyy.txt','r') as file2:
    txt=json.load(file2)
    print(txt)

11.pygame

import pygame
import sys

def run():

    # 初始化屏幕
    pygame.init()
    # 窗口大小
    screen = pygame.display.set_mode((900, 600))
    # 窗口标题
    pygame.display.set_caption('吃鸡神坑助手')
    # 浅灰色
    bg_color=(230,230,230)
    image=pygame.image.load('numberOne.png')
    rect=screen.get_rect()
    while True:
        # 监视键盘、鼠标
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
        # 背景颜色
        screen.fill(bg_color)
        # 图片
        screen.blit(image,rect)
        # 显示窗口
        pygame.display.flip()

# 运行
run()

这里写图片描述

12.模块化编程

这里写图片描述

参考文章:
使用模块的方法:Python3导入自定义模块的3种方式
使用__.ini.py 以模块化:python引入导入自定义模块和外部文件

1.__init__.py
def show():
    print('hello')
2.test.py
from CrashProject import other
other.show()

13.切片、迭代器、生成器

letter = ['a', 'b', 'c']
num = ['1', '2']

# []->()
list = (a + b for a in letter for b in num)
print(list)
for a in list:
    print(a)

list = [a + b for a in letter for b in num]
print(list)

这里写图片描述

这里写图片描述

14、装饰器

类似 JavaEE Spring 框架的 AOP

# 模拟登陆拦截
def AOPTest(func):
    print("---登陆前---")
    func()
    print("---登陆后---")

@AOPTest
def f1():
    print('调用方法')

这里写图片描述

15、属性 setter、getter

class Student(object):
    @property
    def birth(self):
        return self._birth

    @birth.setter
    def birth(self, value):
        self._birth = value


s1=Student()
s1.birth=18
print(s1.birth)

这里写图片描述

16、多态

class Animal:
    def __init__(self, name):
        self.name = name

    def talk(self):
        pass

    @staticmethod   # 封装
    def animal_talk(obj):
        obj.talk()


class Cat(Animal):
    def talk(self):
        print('喵')

class Dog(Animal):
    def talk(self):
        print('汪')

d = Dog("dog1")

c = Cat("cat1")

Animal.animal_talk(c)
Animal.animal_talk(d)

这里写图片描述

三、其他

1、使用豆瓣加速 pip 模块,如安装:

pip  install  -i  https://pypi.doubanio.com/simple/ django
pip install web.py -i http://pypi.douban.com/simple
已标记关键词 清除标记
相关推荐
<p> <span> </span> </p> <h3 class="ql-long-26664262"> <p style="font-size:13pt;"> <span> </span> </p> <div class="ql-long-26664262"> <span style="color:#337FE5;font-size:14px;">【为什么学Python】</span> </div> <p> <span><span style="font-weight:400;"><strong></strong></span></span> </p> <p style="font-size:13pt;"> <span style="color:#494949;font-weight:normal;font-size:14px;">Python 是当今非常热门的语言之一,2020年的 TIOBE 编程语言排行榜中 ,Python名列第一,并且其流行度依然处在上升势头。</span> </p> </h3> <p> <img alt="" src="https://img-bss.csdnimg.cn/202006020826291344.png" /><span style="font-size:14px;"></span> </p> <p> <span style="color:#494949;font-size:14px;">在2015年的时候,在网上还经常看到学Python还是学R的讨论,那时候老齐就选择了Python,并且开始着手出版《跟老齐学Python》。时至今日,已经无需争论。Python给我们带来的,不仅仅是项目上的收益,我们更可以从它“开放、简洁”哲学观念中得到技术发展路线的启示。</span> </p> <p> <br /> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">借此机会,老齐联合CSDN推出了本课程,希望能影响更多的人走进Python,踏入编程的大门。</span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;"><br /> </span> </p> <p> <span> </span> </p> <h3 class="ql-long-26664262"> <p> <span style="color:#337FE5;"><span style="font-size:14px;color:#337FE5;">【课程设计】</span></span> </p> <p style="font-size:12pt;"> <span style="font-size:14px;color:#494949;font-weight:normal;"><br /> </span> </p> <p style="font-size:12pt;"> <span style="font-size:14px;color:#494949;font-weight:normal;">本课程共包含三大模块:</span> </p> </h3> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <strong class="ql-author-26664262 ql-size-12"><span style="color:#000000;font-size:14px;"><br /> </span></strong> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <strong class="ql-author-26664262 ql-size-12"><span style="color:#000000;font-size:14px;">一、基础知识篇</span></strong> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">内置对象和基本的运算、语句,是Python语言的基础。本课程在讲解这部分知识的时候,不是简单地将各种知识做简单的堆砌,而是在兼顾内容的全面性的同时,更重视向学习者讲授掌握有关知识的方法,比如引导学习者如何排查错误、如何查看和理解文档等。</span> </p> <p style="font-size:11pt;color:#494949;"> <span style="font-size:14px;"> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <strong class="ql-author-26664262 ql-size-12"><span style="color:#000000;font-size:14px;">二、面向对象篇</span></strong> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">“面向对象(OOP)”是目前企业开发主流的开发方式,本课程从一开始就渗透这种思想,并且在“函数”和“类”的学习中强化面向对象开发方式的学习——这是本课程与一般课程的重要区别,一般的课程只在“类”这里才提到“对象”,会导致学习者茫然失措,并生畏惧,乃至于放弃学习。本课程则是从开始以“润物细无声”的方式,渗透对象概念,等学习到本部分的时候,OOP对学习者而言有一种“水到渠成”的感觉。</span> </p> <p style="font-size:11pt;color:#494949;"> <span style="font-size:14px;"> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <strong class="ql-author-26664262 ql-size-12"><span style="color:#000000;font-size:14px;">三、工具实战篇</span></strong> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">在项目实战中,除了前述的知识之外,还会用到很多其他工具,至于那些工具如何安装?怎么自己做工具?有那些典型工具?都是这部分的内容。具体来说,就是要在这部分介绍Python标准库的应用以及第三方包的安装,还有如何开发和发布自己的工具包。此外,很多学习Python的同学,未来要么从事数据科学、要么从事Web开发,不论哪个方向,都离不开对数据库的操作,本部分还会从实战的角度,介绍如何用Python语言操作常用数据库。</span> </p> <p> <br /> </p> <p class="16" style="margin-left:21pt;text-indent:0pt;"> <span style="color:#E53333;"></span> </p>
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页