写在前面,某个暑假心血来潮想学习python,在b站找到Mosh的入门视频,链接:python教程2019版 6小时完全入门 并且达到能开发网站的能力 目前最好的python教程 (含中文翻译),是中文翻译版,不过翻译程度有限,可以选择youtube版本
该视频只能带你快速领略Python的蓝图,不能详细地照顾到每个细节,刚好符合我的预期,故选择此。另外,此篇博客只是我笔记的简单记录,如有问题,请各位大神批评指出
Day1
输入函数
name = input('What is your name? ') //输入被存储到name中
//对于输入函数来说,不论输入int还是其他类型,都被存储为字符串
print('Hi ' + name) //字符串的连接组合
变量类型
print (type(name))
age = 2021 - int( birth_year ) //强制转换类型
字符串中引号使用
中间想使用单引号时,最外用双引号;
中间想使用双引号时,最外用单引号
字符串索引
name = 'python for beginners'
012 -1
name[0] p //索引从0开始
name[-1] s
name[0:3] pyt //索引0→不包括索引3
name[1:] ython for beginners //索引1→结束
//默认:从0开始 到结尾结束
name[1:-1] ython for beginer
字符串的一些方法
len() 函数 返回字符串长度
name.upper() / name.lower()
name.find('p') //返回该字符存在的第一个索引
name.replace('pyhton','java')
运算符 in
print('python' **in** name) //返回布尔值 True
运算符和math模块内置函数
10 / 3 =3.333333
10 // 3 =3
10 ** 3 =1000
增广赋值运算符
x += 3 x=x+3
x -= 3 x=x-3
around(2.9) → 3 //四舍五入
abs(-2.9) → 2.9 //绝对值
判断语句
is_hot = True
is_cold = False
if is_hot:
print('')
elif is_cold:
print('')
else:
print('')
格式化输出
print( f"myName : {name}")
逻辑运算符
and 与
or 或
not 非
Day2
while循环
while i<3:
if xx == 1:
print('')
break
else:
print('')
print('')
for循环
for item in 'Python': //整体项目列表,如字符串、方括号列表
print(item)
for item in ['Mosh','Jonh','Sarah'] for item in [1,2,3,4]
**range()函数**
for item in range(5, 10, 2)
//这是一个对象,每一次迭代都向外吐出一个数
**range(起始,终止(不包含),step步长)**
Day3
2维列表 = 矩阵
matrix = [
[1,2,3]
[4,5,6]
[7,8,9]
]
print(matrix[0,1]) // is 2
for row in matrix:
for item in row:
print(item)
list相关函数
numbers = [5,2,6,8]
numbers.append(20) //向最后插入20
numbers.insert(0,7) //向索引0的位置插入7
numbers.remove(5) //去除5
numbers.clear() //清空
numbers.pop() //去除最后一个值
numbers.index(2) //返回该值的索引
print( 50 **in** numbers ) //返回bool值,判断是否在list中,不会产生error
print( numbers.count(2) ) //返回2的个数
numbers.sort()
numbers.reverse()
number2 = numbers.copy()
Tuple元组
numbers = (1,2,3) //类似于list,但是不能对其进行改动,只能查看它的属性,比如.count
unpack特性 - 解压缩
coordinate = (1,2,3)
x, y, z = coordinate //为xyz分别提供coordinate的第1,2,3项
Day4
dictionary 字典
customer = {
"name" = "John",
"age" = 30,
"is_verified" = True
}
print(customer["name"]) //John
print(customer["birthday"]) //error
print(customer.get("birthday")) //None
print(customer.get("birthday","Jan 1 1980")) //输出默认值 Jan 1 1980
字符分割
message = input(">" ) //输入"Good morning :)"
words = message.split(' ') //以空格为分隔符,输出["Good","morning",":)"]
Function 函数
def greet_user(**name**):
print(f"hi, {name}")
print("welcome!")
//函数定义后需要空两行
greet_user("John")
greet_user2(a = 1, b = 2, c = 3)
Day5
Exception 处理错误
try:
age = int(input('age: '))
print(age)
except ValueError:
print('Invaild value')
程序员考虑错误情况并捕捉,可以避免程序因为错误输入而崩溃
Class
class Point:
def __init__(self, x, y): //构造函数,可以调用该函数来进行初始化
self.x = x
self.y = y
def move(self):
print
def draw(self):
print
//中间空两行
point1 = Point(10,20) //创建Point类的新对象,调用构造函数
继承
class Mammal:
def walk(self):
print
class Dog(Mammal): //Dog继承Mammal
pass
//python不喜欢空类,所有加入pass来占行
class Cat(Mammal):
def new(self):
print
import
**package > module(每个.py文件) > 函数**
1. *module—utils, utils中定义函数find_max()*
import utils
utils.find_max()
2. *module—utils, utils中定义函数find_max()*
from utils import find_max
find_max()
3. *package-1*
__init__.py
moduleA.py
def function1()
from package-1 import moduleA
moduleA.function1()
4. from package-1.moduleA import function1
function1()
5. from package-1.moduleA import class-1
object = class-1()
随机函数 random
import random //内置函数
random.randint(1,6) //生成1-6之间的随机数
path
from pathlib import Path //Path是个类
path = Path("email") //如果为空,则指的是根目录
print(path.mkdir()) //创建新目录
for file in path.glob('*.py'): //用于搜索目录
print(file)
Project 1
流行的Libraries
-
Numpy //多维数组
-
Pandas //数据分析库 datafream,数据结构类似于excel,有行有列
-
matPlotLib //绘图库
-
SciKit-Learn //提供通用算法,决策树、神经网络…
pandas示例
import pandas as pd
df = pd.read_csv(‘vgsales.csv’) //返回的是一个datafream对象
df
//可以在jupyter中展示
datafream
- df.shape
- df.describe()
-//返回datafream的详情,每列有多少个值,可以判断出是否有空值;平均值、标准差等等 - df.values
//返回一个二维数组array
Jupyter快捷键
-
ctrl+enter run this cell
-
shift+enter run and go to below
-
dd delete this cell
-
df.+Tab 提示函数
-
df.name() shift+Tab 提示函数属性
导入数据+训练模型
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
music_data = pd.read_csv('music.csv')
X = music_data.drop(columns=['genre'])
y = music_data['genre']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
score = accuracy_score(y_test, predictions)
score
保存模型
from sklearn.externals import joblib
joblib.dump(model, 'music-recommender.joblib')
model = joblib.load('music-recommender.joblib') //使用模型进行预测
predictions = model.predict([ [21, 1] ])
Project 2
pip安装Django框架
终端输入 pip install django==2.1
创建Django Web项目
避坑: runserver没反应,改成 python manage.py runserver OK
点击网址可以进入第一个Django界面
python manage.py startapp products
整体流程 20分钟快速用django+mysql+pycharm搭建一个自己的web网站
https://www.cnblogs.com/xiaoqingSister/p/13355832.html
主路由路径 → 子路由路径 → view中def渲染函数 → 渲染 xx.html