第一讲 计算方法和计算思惟的一些基本原则python
这一整门课程将教大家怎样进行计算机编程,怎样发送计算机可以理解的指令,更重要的是让大家具备计算思惟。算法
事实上计算机只作两件事情:计算和记录结果,以备后用。shell
每一台计算机都能作一系列简单的基本运算,咱们称为内置运算。它们是由制造商提供给计算机使用的基本元素。整个课程中一件关键的事情是学会如何创造咱们本身的计算方法。如何像计算机及同样思考,也就是计算思惟。计算机很快,但一样须要设计好的算法。计算机也有不能解决的问题。编程
计算思惟是什么意思?→什么是计算?→什么是知识?→编程语言
知识细分为两个部分:函数
陈述性知识: 咱们能够认为是事实描述,并不总能帮助咱们找到新信息学习
程序性知识(操做方法): 给了咱们找到新信息的方法,方法即作某件事的一系列机械步 骤。程序性知识是那种指导咱们去找寻东西的方法和说明书操作系统
计算内任何计算仅需6种原语就够了任何拥有这种属性的计算机,解释器,咱们叫作
图灵完备的,那意味着任何你能够用某种编程语言来计算的东西。并且任何东西只要对某一种语言是可计算的,对其余任何语言也是可计算的 翻译
陈述性知识虽然是许多知识的基石,但不是咱们须要的。咱们的目标就是获取程序性知识,将问题分解为机械性的步骤,而后想办法将这些转换成机械或计算机可以理解的东西,
以便计算机为咱们执行这些步骤设计
创造“方法”是什么意思:任何编程语言都提供一套原语集。它们是预先定义好的,是ALU中让计算机工做的组件,因此咱们要在这些的基础之上来构建。与此相似,任何编程语言都提供一种方法或者机制来将原语组合造成更加复杂但合法的表达式
咱们的目标是想要学习编程语言中的语法和语义。那些是构造合法的程序而且让它们作有趣事情的详细内容。可是咱们真正想要作的是学会如何使用那些基本元素,将咱们解决问题的"方法"翻译成计算机可以真正用来为咱们工做的形式。咱们想让计算机来计算出感兴趣的问题的答案,咱们想提供算法(步骤序列)使之成真。咱们想经过遵循咱们编程语言的语法和语义的构建方式来作这件事,而后把这些都组合起来,咱们就获得了能让它真正工做起来的概念。
咱们须要以聪明的方式进行些运算,因此那种计算式的思惟模式,将问题描述分解成"方法",即步骤的序列,这将很是有价值。
第二讲 python 基础知识
咱们想要将计算思惟应用于实践中,将一个问题分解成一系列机械步骤,好让咱们推导出问题的解决方案。并且咱们想将这样的描述经过某种方式转化成计算机也能够工做的形式,从而为咱们服务。那表示咱们须要一种描述这些步骤的方法,所以,编程语言便应运而生。编程语言定义了语法和语义,从而将计算的想法翻译成为机械步骤。语法描述了如何将合法表达式
组合在一块儿。而语义描述了咱们如何从那些表达式中推导出相关的含义,从而解决那些咱们想解决的问题。
本门课程选择了python做为编程语言。这是一种解释性语言。
程序:会包含一系列定义和命令
shell:shell只是一个程序,它容许用户在其中输入命令,这些命令会被计算机的操做系统直接执行
定义:定义是那些被计算和存储的东西
命令:它们是指示解释器去作某事的东西
本质上每一个程序都会操做一个数据对象,每一个数据对象都有一个类型,它定义了程序能够对这个对象作的事情。咱们将看到,一般数据对象要么是不可分割的标量或者是非标量,拥有一个能够访问的内部结构。
Python中有3种不一样的标量对象:
整数,用来表示咱们所熟知的所有数字
浮点数,用来表示实数,即那些有一个小数点的数。
布尔的对象,一般也被称做bool,它表示真和假。
type(object) 这是一个函数,用于获取对象的类型
type(3) <type 'int'>
type(3.0) <type 'float'>
表达式由操做符和对象——数据对象——构成。它们能够组合起来,发出指令作一些不一样于它们自己的事情。
操做符:+, -, *, /, %, >, <, >=, <=, ==, !=, and , or, not
+:将两个数相加,或将两个字符串链接起来
-:将两个数相减
/:将两个数相除,两边都为整数时结果为整数(商),只要一边为浮点数结果是准确的
%:取余数
() :能够改变运算优先级
< :小于符号,比较两个数,返回布尔值True或者Flase
> :大于符号,比较两个数,返回布尔值True或者Flase
>=:大于等于符号,比较两个数,返回布尔值True或者Flase
<=:小于等于符号,比较两个数,返回布尔值True或者Flase
==:等于符号,比较两个数是否相等,返回布尔值True或者Flase
!= :不等于符号,比较两个数是否不相等,返回布尔值True或者Flase
and: 与操做,两边都为真就返回真,其余返回假
or:或操做,两边都为假就返回假,其余返回真
not:取反,右边为真返回假,右边为假返回真
类型(对象):将对象转换成某种类型
例:int(3.9),将3.9转换成整型 结果为3
抽象化(赋值):经过一个名字把表达式的值存储下来,而后在任何咱们须要的时候使用这个名字来获得
=:用于赋值,将变量和值绑定起来
例 pi = 3.14159
radius = 11.2
area = pi * r * r
非标量的对象是一种复合物,也是咱们能得到的组成成分或组件。
字符串:str(string)类型的对象,字符串放在一对双引号(" ")或单引号(' ')之中
例: 'abc'
'123'也是字符串和整型不捅
字符串操做:
3 * 'a' 返回的是 'aaa'
'ab + 'cd' 返回的是 'abcd' 字符串使用+号进行链接
'a' + str(123) 返回的是 'a123' 字符串只能和字符串链接
这里的+的用法就是操做符重载,即便用相同的操做符对不一样的对象作不一样的事情
len(objec) 获取对象的长度
例: len('abc') 返回3
索引
索引从0开始计数
'abc'[0] 返回字符串中的第一个字符 'a'
'abc'[2] 返回字符串中的第三个字符 'c'
'abc'[3] 若是超过字符串的长度就会报错error
索引也能够逆向查找
'abc'[-1] 返回字符串中的最后一个字符'c'
切片技术(Slicing)
'abc'[start:end]包含头不包含尾
例 'abc'[1, 3] 返回 'bc''
python使用文件执行
在shell中直接输入,会给咱们返回数据,可是从文件导入是不会返回的,文件中须要明 确指定输出
print() 输出语句:在shell中输出括号内的东西(python3须要括号,为了兼容尽可能加 上括号),在输出前会计算好括号内的东西
例:print('abc') 输出 abc
print('your name is' + name)
print(3+4) 输出7
input()输入语句: 在shell中让用户输出数据,并返回用户输入的数据的字符串形式,可 以在括号中指定输入提示
例:name = input("what is your name? > ) 会在shell中打印what is your name ? > 并 让你输入数据,输入的数据会存入name中
若是须要输入数字,须要作类型转换int() 或者 float()
#:表示注释,#后面的都是注释
控制流:
经过条件判断程序执行,语法:
if 表达式1:
elif 表达式2:
.....
else:
elif和else能够省掉,根据需求添加,若是表达式1为真就执行if下面的代码块不然 就跳过if的代码块判断表达式2,若是表达式2为真则执行elif下的代码块不然就跳 过elif,以此类推,若是全部表达式都为假则执行else的代码块,执行完当前代码块 后就会结束条件判断执行下一条指令。条件判断语句中能够嵌套条件判断语句。
注:python中采用缩进与冒号搭配的形式来肯定代码块的从属关系
例:
if x >2 :
print('x>2') #从属if的代码块
print('....') #从属if的代码块
elif x>1:
print('1<x<2') #从属elif的代码块
else:
ptint('x<1') #从属else的代码块
print('if end') #单独的语句,条件判断语句执行完后从这里开始执行