Python基础语法

170 阅读4分钟

Python基础语法(自学版)

写在前面,某个暑假心血来潮想学习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}")

逻辑运算符

andornot

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的第123

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网站

www.cnblogs.com/xiaoqingSis…

主路由路径 → 子路由路径 → view中def渲染函数 → 渲染 xx.html

CSDN链接