Python入门学习笔记(MOOC北理工)

课程b站链接

10. 2.2.2 计算机与程序设计_哔哩哔哩_bilibili

重难点截自菜鸟教程 


2.2.3 静态语言与脚本语言

静态语言:编译器。C、Java。一次性生成目标代码,运行更快

脚本语言:解释器。Python、PHP、JavaScrip。逐行翻译,需要源代码参与,类似同声传译

2.2.4 程序基本编写方法IPO

I:Input 输入,程序的输入。

P:Process 处理,程序的主要逻辑。

O:Output 输出,程序的输出。

 2.2.5 计算机编程

计算思维(计算机)逻辑思维(数学)实证思维(物理)

思考:解决方法,用户体验,执行效率。

2.3.4 程序编写与运行

两种编程方式:交互式和文件式

交互式:对每个输入语句即时运行效果,适合语法学习。

文件式:主要方式,一次性运行。

2.4.1 温度转换实例

华氏度:32-212

摄氏度:0-100

2.5.2 程序的格式框架

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。 

python的缩进是严格的,是语法的一部分,表达程序的格式框架,层次关系。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

单行注释:# ...

多行注释:''' ... '''

2.5.3 命名与保留字

变量:程序中用于保存和表示数据的占位符号。

赋值:单一等号=

命名:大小写敏感,首字不能是数字,不能与保留字(33个)相同。

标准数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

数字类型

一共有4种:整数,浮点数,布尔型,复数。

  • int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
  • bool (布尔), 如 True,False。
  • float (浮点数), 如 1.23、3E-2
  • complex (复数), 如 1 + 2j、 1.1 + 2.2j

内置的 type() 函数可以用来查询变量所指的对象类型。此外,还可以isinstance函数

Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。

——数值运算

/是得到浮点数

//是得到整数

在混合计算时,Python会把整型转换成为浮点数。

字符串

字符串:由一对单引号或一对双引号表示,单引号和双引号完全相同。

字符串可以进行索引:有两种方法:

  • 正向递增序号:0开始
  • 反向递减序号:-1开始

转义符:\

不转义可以在字符串前面添加一个 r ,如 r"this is a line with \n" 则 \n 会显示,并不是换行

字符串可以用 + 运算符连接在一起,用 * 运算符重复。

Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。

字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

  • 索引:返回字符串中的单个字符, <字符串>[M]
  • 切片:返回字符串中的一段子串:    <字符串>[M:N]   注意,M是包含的,N是不包含的
word = '字符串'
sentence = "这是一个句子。"
paragraph = """这是一个段落,
可以由多行组成"""

print (str[2:5])     输出从第三个开始到第五个的字符,注意,是第五个!前后计算方法不一样!

与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如 word[0] = 'm' 会导致错误。 

列表(List)

Python 有 6 个序列的内置类型,但最常见的是列表和元组。

列表都可以进行的操作包括索引,切片,加,乘,检查成员。

列表的数据项类型可以不相同

list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

——更新列表

list[2] = 101

append() 方法用于在列表末尾添加新的对象。

list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')

——删除列表元素

可以使用 del 语句来删除列表的的元素

del list[2]
print ("删除第三个元素 : ", list)

remove()

——嵌套列表

[['a', 'b', 'c'], [1, 2, 3]]

元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。即元组所指向的内存中的内容不可变。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素类型也可以不相同

其实,可以把字符串看作一种特殊的元组。

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

string、list 和 tuple 都属于 sequence(序列)

集合

是一个无序的不重复元素序列。

用{}或set()创建集合,注意创建空集合必须是set(),创建空字典是{}

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) 

——集合基本操作

  • 添加元素
s.add( x ) 如果元素已存在,则不进行任何操作。
s.update( x )  且参数可以是列表,元组,字典
  • 移除元素
s.remove( x )  如果元素不存在,则会发生错误。
s.discard( x )
  • 计算集合元素个数
len(s)
  • 清空集合
s.clear()

字典

——创建字典

  • 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典在花括号 {} 中 
  • 键必须是唯一的,但值则不必。
  • 值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
  • 创建时如果同一个键被赋值两次,后一个值会被记住
tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}

使用内建函数 dict() 创建字典:

——访问字典

把相应的键放入到方括号[]中

tinydict['Name']:  Runoob
tinydict['Age']:  7

如果没有该键则会报错

——修改字典

tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息

——删除字典(元素)

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典
 

数据类型转换

Python 数据类型转换可以分为两种:

  • 隐式类型转换 - 自动完成
  • 显式类型转换 - 需要使用类型函数来转换

隐式:较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

显式:我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。

  • int() 强制转换为整型:
x = int(1)   # x 输出结果为 1
y = int(2.8) # y 输出结果为 2
z = int("3") # z 输出结果为 3
  • float() 强制转换为浮点型:
x = float(1)     # x 输出结果为 1.0
y = float(2.8)   # y 输出结果为 2.8
z = float("3")   # z 输出结果为 3.0
w = float("4.2") # w 输出结果为 4.2
  • str() 强制转换为字符串类型:
x = str("s1") # x 输出结果为 's1'
y = str(2)    # y 输出结果为 '2'
z = str(3.0)  # z 输出结果为 '3.0'

 运算符

Python 语言支持以下类型的运算符:

 算数运算符

+   -   *   /    %  //(取整除 - 往小的方向取整数)   **(幂)

比较运算符 

 ​编辑 

 赋值运算符

 各种算术运算符加上=号,比如a += c,意思是  a = a + c

 ​编辑 

 位运算符 (按位...)

 与: &  全1则1,有0则0

或: |   有1则1,全0为0

异或: ^   相异则1

取反:~   0变1,1变0

左移位:<<   高位丢弃,低位补0,a<<2的意思是左移2位

右移位:>>   低位丢弃,高位补0。 

 逻辑运算符(布尔...)

  

成员运算符

in:如果在指定的序列中找到值返回 True

not in:如果在指定的序列中没有找到值返回 True

a = 10
b = 20
list = [1, 2, 3, 4, 5 ]
 
if ( a in list ):
   print ("1 - 变量 a 在给定的列表中 list 中")
else:
   print ("1 - 变量 a 不在给定的列表中 list 中")

身份运算符

用于比较两个对象的存储单元

还不太理解。。。 

优先级

2.5.5 语句与函数

多行语句:

\使用反斜杠

分支语句:注意冒号结尾!

if语句

按上下顺序判断

使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

if             :
    ...
elif            :
    ...
else            :
    ...

if嵌套

 
num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

循环语句

while循环

同样需要注意冒号和缩进

在 Python 中没有 do..while 循环。

while ...  :
    ...
    ...
    循环体

——while...else语句

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

for循环

遍历任何可迭代对象,如一个列表或者一个字符串

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    print(site)

word = 'runoob'
 
for letter in word:
    print(letter)

——for...else语句

当循环执行完毕(即遍历完 iterable 中的所有元素)后,会执行 else 子句中的代码,如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。

range()函数

主要用于遍历,它会生成数列

range(5)是0到4

range(1,5)是从1到4

带步长的如下:

>>
for i in range(0, 10, 3) :
    print(i)
 
>>    
0
3
6
9

break和continue函数

break函数

跳出整个循环体

continue语句

跳出这一次循环,并进入下一次循环

pass语句

pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句

del语句

删除变量 

var1 = 1
var10 = 2
del var1,var10

2.5.6 程序的输入输出

变量 = input(“请输入”)

print(“你好”)

eval函数:去掉参数最外侧引号并执行余下语句,比如:

eval("1+2"),运行结果为3

空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。

类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行不是语法的一部分,有没有无所谓,便于维护。

同一行显示多条语句

Python 可以在同一行中写多条语句,语句之间使用分号 ; 分割,以下是一个简单的实例:

import sys; x = 'runoob'; sys.stdout.write(x + '\n')

多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。

print 输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":

# 不换行输出
print( x, end=" " )
print( y, end=" " )

import 与 from...import

允许多变量赋值

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型

a, b, c = 1, 2, "runoob"

函数

(73条消息) Python函数知识点(详解)_辰兮要努力的博客-CSDN博客

摘自这篇文章 

def 函数名(参数列表):
    函数体

如果函数中执行到了return也会结束函数

函数参数

  • 形参:定义时小括号中的参数
  • 实参:调用时小括号里的参数

——缺省参数:在形参中默认有值的参数,称之为缺省参数,如果实参没有传入则取默认值

  • 注意:带有默认值的参数一定要位于参数列表的最后面!
def printinfo(name, age=35):
   # 打印任何传入的字符串
   print("name: %s" % name)
   print("age %d" % age)

# 调用printinfo函数
printinfo(name="miki")  # 在函数执行过程中 age去默认值35
printinfo(age=9 ,name="miki")

——不定长参数

有时需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。

def functionname([formal_args,] *args, **kwargs):
注意:
加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典.

看示例就明白了:

def fun(a, b, *args, **kwargs):

    print("a =%d" % a)
    print("b =%d" % b)
    print("args:")
    print(args)
    print("kwargs: ")
    for key, value in kwargs.items():
        print("key=%s" % value)

fun(1, 2, 3, 4, 5, m=6, n=7, p=8)  # 注意传递的参数对应
  • 如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面,
    但如果有**kwargs的话,**kwargs必须是最后的

函数的返回值

在python中我们怎样返回多个值?

def divid(a, b):
    shang = a//b
    yushu = a%b 
    return shang, yushu  #默认是元组

result = divid(5, 2)
print(result)  # 输出(2, 1)
  • return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据。

函数嵌套调用

如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

局部变量

就是在函数内部定义的变量,且只在函数内部起作用

全局变量

在函数外边定义的变量,任何函数都能调用

注意:

  • 当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 此时理解为定义了一个局部变量,而不是修改全局变量的值。
  • 如果在函数中出现global 全局变量的名字 那么这个函数中即使出现和全局变量名相同的变量名 = 数据 也理解为对全局变量进行修改,而不是定义局部变量
# 可以使用一次global对多个全局变量进行声明
global a, b
# 还可以用多次global声明都是可以的
# global a
# global b

模块

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。

模块可以被别的程序引入,以使用该模块中的函数等功能。

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:

搜索路径被存储在 sys 模块中的 path 变量

Windows 是一个不区分大小写的系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值