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

一、前言

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

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

二、demo

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.流程控制

# 1if-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!')

# 3while 循环: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()

猜你喜欢

转载自blog.csdn.net/larger5/article/details/80040527
今日推荐