博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CS50 2016 Week 8 学习笔记
阅读量:4099 次
发布时间:2019-05-25

本文共 2331 字,大约阅读时间需要 7 分钟。

这节课开始讲python了,print("Hello World!")、函数、变量、循环、条件语句、运行python程序、python基本数据类型;

然后将前几课的C语言代码用python重写了一遍;
最后讲到MVC模式、Web server、flask框架。


python

python比起C更高级一些, 语法也更接近伪代码,方便学习、读写。

作为解释型语言,运行之前不需要编译,python软件会自己完成这个步骤。
相比于C,python有许多第三方库,python也可以做更多的事情。


python2 & python3

一直都在用,感觉不出太多差异,只是有些模块支持python2,有些支持python3。

python3毕竟更高级的版本,直接学python3就好。


python安装

Windows系统中的应用商店、或者python官网都能下载安装。

安装之后记得添加安装路径到系统环境变量中,才能在命令行中运行python。

Ubuntu中自带了python,不需要自己下载安装了。

只是Ubuntu中没有编辑器,可以下载SublimeText 或者Atom编写代码,然后在命令行中运行。


运行程序

例如写好代码testmain.py,在命令行找到代码目录, python testmain.py 就可以运行,运行前不需要编译。

这里运行程序时只传递了模块名这一个参数,有些代码需要更多参数,可以一并传递。


python 中不要求或者不需要写main(),直接运行就好。

python中有”if __name__ == ‘__main__’:”语句,__name__存储着当前模块的名字。

当模块被直接运行时,__name__ 会变成 “__main__”。

“if __name__ == ‘__main__’:”条件语句用来判断当前模块是不是被直接运行(而不是被其他模块导入):

这里写图片描述


变量

关于变量,变量只是一个名字,变量用来存储数据,例如整型数据、字符串数据、数组、列表等等。

python定义变量时不需要事先指定变量类型、python会根据存储的数据类型自己分类。

>>> a = 'a string'>>> b = 30>>> c = (2,3,0)>>> d = [2,3,3]>>> type(a)
>>> type(b)
>>> type(c)
>>> type(d)
>>>

变量的名字不能乱取。

python中的关键词(def class del)这些不能用。
变量只能是一个单词,中间不能有空格。


函数

最简单的这个print()就是函数。

C语言中对应的是printf(),来自stdio.h库,所以使用前导入了stdio.h库。

python中print() 为内置函数,使用前不需要导入。

同样的还有range()input()dir()等等。

还有一些函数和C语言类似,使用前需要从其他模块(库)导入。

>>> from math import cos>>> cos(0)1.0>>>

当然,可以自己写函数:

>>> def hello():    print('Hello world!')>>> hello()Hello world!>>> for i in range(3):    hello()  # 代码重用Hello world!Hello world!Hello world!>>>

注意,只有使用函数后才能运行函数内的代码。(听起来很傻,这还用说!)

在编辑器中定义了函数,最后忘记运行函数,运行模块时会没有反应。


if 条件语句

满足哪个条件,执行之后的代码。

这里写图片描述


循环

和C语言中一样,for循环和 while 循环。

for 循环,一般都是有限的循环,满足条件会一直运行,直到不满足条件。

while循环可以无限循环,如 while True:,直到遇到break语句。


基本数据类型

python中基本数据类型有

  • Number (int, float, bool, complex)
  • String (单引号、双引号、三引号括起来的部分)
  • Tuple (标志为小括号,如(2, “ve”, 0))
  • List (标志为中括号,如[2, 3, “fc”])
  • Set (标志为大括号,如{“Feng”, “Wei”, “lei”})
  • Dict (标志为大括号,必须是{key : value}的形式)


类和面向对象编程

用Flask类来理解吧。

类的概念和python中模块的概念一样,

python需要导入其他模块,才能使用其他模块中的函数。
同样,python需要导入其他类,才能使用其他类中的函数(方法)。

面向对象

例如 from flask import Flask,这里从flask模块中导入Flask类,而不是函数。
接着 app = Flask(__name__),实例化一个Flask对象。
注意,app是一个对象,接着针对这个对象写之后的代码,即面对对象编程。


web server

然后,python中有BaseServer、TCPServer、HTTPServer类可以创建本地 Web服务器。

有了本地服务器,可以在本地计算机处理浏览器的请求。

具体的实现太基层了,需要自己写服务器,自己写请求处理过程。

然而,有了开发框架(例如flask),不用自己写那些类和方法,只要会使用这些方法就好。


MVC模式

然后视频中讲到了MVC,flask,连着下一课一起写笔记。

你可能感兴趣的文章
DirectX11 指定材质
查看>>
DirectX11 平行光
查看>>
DirectX11 点光
查看>>
DirectX11 聚光灯
查看>>
DirectX11 HLSL打包(packing)格式和“pad”变量的必要性
查看>>
DirectX11 光照演示示例Demo
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Vue+webpack构建单页router应用(二)
查看>>
从头开始讲Node.js——异步与事件驱动
查看>>
Node.js-模块和包
查看>>
2017年,这一次我们不聊技术
查看>>
实现接口创建线程
查看>>
HTML5的表单验证实例
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
SQL join
查看>>
JavaScript实现页面无刷新让时间走动
查看>>
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>