作者:丶Olrickx | 来源:互联网 | 2023-07-26 15:35
文章目录前言基础知识变量和简单数据类型列表字典if语句及用户输入和while循环函数类文件和异常测试项目实战外星人入侵数据可视化Web应用程序前言这是我的第一篇博客,
文章目录
- 前言
- 基础知识
- 变量和简单数据类型
- 列表
- 字典
- if语句及用户输入和while循环
- 函数
- 类
- 文件和异常
- 测试
- 项目实战
前言
这是我的第一篇博客,只当是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.可视化数据存储类型:CSV和JSON。
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应用程序
一、建立项目
- 建立虚拟环境
python -m venv ll_env
; - 激活虚拟环境
ll_env\Scripts\activate
; - 在Django中创建项目
django-admin startproject learning_log
,可用dir查看,会生成settings.py,urls.py,wsgi.py等文件; - 创建数据库
python manage.py migrate
,会生成db.sqlite3文件; - 查看项目
python manage.py runserver
,用此命令后才能在浏览器中打开网页。
二、创建应用程序
python manage.py startapp learning_logs
运行此命令后,会生成models.py,admin.py,views.py等文件。
修改数据库三步走:
- 修改models.py;
- 对learning_logs调用makemigrations.
python manage.py makemigrations learning_logs
; - 让Django迁移项目
python manage.py migrate
。
三,创建页面
一般分三个步骤:
- 定义该页面的URL;
- 编写其视图函数;
- 创建一个简单的模板。
四,其它笔记
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)。