热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《Python编程:从入门到实践》学习笔记

文章目录前言基础知识变量和简单数据类型列表字典if语句及用户输入和while循环函数类文件和异常测试项目实战外星人入侵数据可视化Web应用程序前言这是我的第一篇博客,


文章目录

  • 前言
  • 基础知识
    • 变量和简单数据类型
    • 列表
    • 字典
    • if语句及用户输入和while循环
    • 函数
    • 文件和异常
    • 测试
  • 项目实战
    • 外星人入侵
    • 数据可视化
    • Web应用程序


前言

这是我的第一篇博客,只当是python学习的一个小结,写的不好,还请大家见谅。
我学习用的书籍是《Python编程:从入门到实践》,编程环境我用的是Anaconda中的Spyder,个人觉得Anaconda还是挺好用的。从4月21号开始,花了一周时间学完了这本书,项目也都基本动手敲了一遍。
当然,一门编程语言绝对不可能在这么短时间内学会,算是入了个门,在今后的学习中再不断巩固应用吧。

在这里插入图片描述


基础知识


变量和简单数据类型

1.修改字符串大小写:.title(),用来进行首字母大写;.upper(),全大写;.lower(),全小写。
2.字符串中使用变量:f"{}",其中括号里面存放变量。
3.制表符:\t,换行符:\n。
4.删除空白:.rstrip(),删除右边(末尾)空白;.lstrip(),删除左边(开头)空白;.strip(),删除两边空白。
5.多个变量赋值:x,y,z = 0, 0, 0,就是可以连写的意思。
6.用全大写来定义常量。
7.注释用(#)标识,注释和多行注释快捷键Ctrl+1。


列表

1.索引从0开始而不是1;-1访问倒数第一个列表元素,-2访问倒数第二个,这样可以在不知道列表长度下访问最后面的元素。
2.列表中添加元素:insert(),在任意位置添加;append(),附加到末尾。
3.永久删除用del,临时删除用remove,删除并弹出用pop()。
4.sort(),用来永久排序(按字母顺序);sorted(),临时排序;.reverse(),将列表元素顺序反转。
5.确定列表长度:len()。
6.遍历整个列表:注意三点:冒号、单复数和缩进
7.range()可生成系列数,list()可转换为列表;例如list(range(2,12,2)),最后一个2表示步长,另外,由于差一行为,只输出到10。
8.最大值max(),最小值(),求和sum()。
9.列表中的部分元素称为切片;如print(player[1:4])输出player列表中第二、三、四个元素。
10.不可变的列表称为元组,用圆括号()标识。


字典

1.字典名 = {‘键’ : ‘值’ , '键’ : ‘值’}。
2.get(‘键’ , ’ '),方法get()的第一个参数用于指定键,必不可少;第二个参数为指定的键不存在时要返回的值。
3.遍历键值对列表 .items(),遍历所有键 .keys(),遍历所有值 .values()。
4.python中字典的循环默认取Key(键)。
5.set(values)可以将字典的值去重。
6.将一系列字典存在列表中,或将列表作为值存在字典中,称为嵌套
7.字符串" ",列表[ ],字典{ },注意区分。


if语句及用户输入和while循环

1.检查特定值是否包含在列表中用关键字in或者not in
2.if-elif-else结构中,else可省略。
3.input()可让程序暂停运行,等待用户输入一些文本;int()用来获取数值输入。
4.求模运算符%,即求余数。


函数

1.定义函数用关键字def
2.传递实参三种方式:位置实参、关键字实参和默认值。
3.切片表示法[ : ]可用来创建副本。
4.形参*创建空元组,*args收集任意数量的位置实参;形参**创建空字典,**kwargs收集任意数量的关键字实参。它们都放到形参的最后面。
5.函数存储在模板中,一般要么导入到特定函数,import module_name as mn;要么导入整个模板,from module_name import function_name as fn
6.养成规范代码的习惯。运算符两边各添加一个空格;函数或类的定义下面都用文档字符串""" “”"注释;在类内用一行来区分两个函数,类之间空两行。


1.首字母大写的名称指的是类,且类名不适应下划线。
2.类中的函数成为方法,__init__是一个特使方法,python中会自动运行,且形参self是一个指向实例本身的引用。
3.修改实例的属性有直接修改和通过函数两种。
4.在继承中,函数super()可以调用父类。
5.同函数一样,一般也是导入单个类或者导入整个模板。


文件和异常

1.用with来让python在合适时自动关闭文件,with open('text_files/filename.txt') as file_object:
2.readlines()从文件中读取每一行。
3.读取模式(‘r’),写入模式(‘w’),附加模式(‘a’),读写模式(‘rf’)。
4.用try-except-else来处理异常。
5.split()函数可以以空格为分隔符将字符串进行拆分。
6.json.dump()接受一个JSON数据对象和一个文件对象,并将数据写入这个文件中,其实作用就是存储数据;json.load()来读取数据。
7.重构:划分为一系列具体函数。


测试

1.Python标准库中模板unittest提供了测试工具。
2.unittest模板中断言方法:


  • assertEqual(a, b),核实a == b。
  • assertNotEqual(a, b),核实a != b。
  • assertTrue(x),核实x 为True。
  • assertFalse(x),核实x 为False。
  • assertIn(item, list),核实item在list中。
  • assertNotIn(item, list),核实item不在list中。

3.setUp()可以实现创建对象一次,在每个测试方法中使用,且优先运行。


项目实战

三个项目我基本都实现了(除了最后一个项目中部署“学习笔记”部分没做)。
第一个外星人入侵是很有趣味性的,想想自己可以动手做游戏就动力满满,通过一步步地实现越来越复杂的功能,能帮助我们更好地理解前面所学的列表、字典、函数、类等基本概念。
第二个项目数据可视化分了几块,像Matplotlib生成平方数值表、Plotly模拟掷骰子、CSV文件和JSON文件的可视化、API的使用。这个项目工作的核心就是将获取的数据进行可视化。
第三个项目是做一个“学习笔记”的网页,我之前没有任何前端基础,但是通过这个项目我也算是对HTML有了个初步接触。


外星人入侵

这部分没做什么笔记,照着书本边敲边理解,Pygame开发游戏真的很有意思。
在这里插入图片描述


数据可视化

1.数学绘图库Matplotlib

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
#fig表示整张图片,ax表示图片中各个图表

2.font是字体的意思,fontsize指定图表中各种文字大小。
3.scatter()绘制散点图

ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blue, s=10)
#c设置成了一个y值列表,cmap告诉pyplot使用哪个颜色映射,s表示点的尺寸

4.Plotly生成交互式图表。
5.可视化数据存储类型:CSVJSON
6.reader()以逗号分隔第一行数据,并将每项数据作为一个元素存储在列表中。
7.datetime.striptime()用来解读日期
8.Plotly Express可对数据系列进行定制import plotly.express as px;而pandas作为一种数据分析工具,是将所需数据封装起来。
9.大家有空要去了解下git本地仓库和远程仓库的一系列命令,还是很有用的。
10.API调用r = requests.get(url)
11.指向项目的链接:HTML标记

link text

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


Web应用程序

一、建立项目


  1. 建立虚拟环境python -m venv ll_env
  2. 激活虚拟环境ll_env\Scripts\activate
  3. 在Django中创建项目django-admin startproject learning_log,可用dir查看,会生成settings.py,urls.py,wsgi.py等文件;
  4. 创建数据库python manage.py migrate,会生成db.sqlite3文件;
  5. 查看项目python manage.py runserver,用此命令后才能在浏览器中打开网页

二、创建应用程序

python manage.py startapp learning_logs

运行此命令后,会生成models.py,admin.py,views.py等文件。
修改数据库三步走:


  1. 修改models.py;
  2. 对learning_logs调用makemigrations.python manage.py makemigrations learning_logs;
  3. 让Django迁移项目python manage.py migrate

三,创建页面
一般分三个步骤:


  1. 定义该页面的URL;
  2. 编写其视图函数;
  3. 创建一个简单的模板。

四,其它笔记
1.外键ForeignKey:指向数据库中另一条记录。
2.Django shell 测试项目和排查故障。
3.

标识段落;{% %}模板标签;
    表示项目列表(无序列表),
  • 表示项目列表项,二者结合使用。
    4.模板文件通常只缩进两个空格。
    5.order_by('-date_added')其中’-‘表示按降序排列;’|'表示模板过滤器。
    6.模板标签{% csrf_token %}用来防止攻击者利用表单获得对服务器未经授权的访问(跨站请求伪造);as_p表示以段落格式渲染。
    7.一个应用程序中的模板可继承另一个应用程序中的模板。
    8.@login_required实现限制访问。
    9.Bootstrap库可为Web应用程序设置样式。
    10.HTML文件主要组成:头部(head)和主体(body)。
    在这里插入图片描述


    推荐阅读
    • web.py开发web 第八章 Formalchemy 服务端验证方法
      本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
    • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
    • Spring源码解密之默认标签的解析方式分析
      本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
    • Linux重启网络命令实例及关机和重启示例教程
      本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
    • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
    • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
    • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
    • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
    • 无损压缩算法专题——LZSS算法实现
      本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
    • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
    • 也就是|小窗_卷积的特征提取与参数计算
      篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
    • [大整数乘法] java代码实现
      本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
    • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
    • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
    • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
    author-avatar
    丶Olrickx
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有