INT104-Tutorial 1

Jupyter Notebook

Jupyter Notebook 是一个基于网页的交互式计算环境,用于创建和共享程序文档。它支持多种编程语言,包括 Python、R、Julia、JavaScript 等。
其本质是一个 Web 应用程序,它由以下几个部分组成:

  • 内核:负责执行代码并生成结果。
  • 前端:用于输入代码和查看结果。
  • 文档:包含代码、文本、数学方程、可视化等内容。

主要特点包括:

  • 交互性:可以逐行执行代码,并立即查看结果。
  • 可编辑性:可以随时修改代码并重新执行。
  • 可分享性:可以将笔记本以 .ipynb 格式导出或发布到互联网上。

所以学校选择使用Jupyter来教学Python。

安装

安装Anaconda-Navigator(另一种安装方式)

进入https://www.anaconda.com/download,下载系统对应的版本即可。
跟着图形安装界面安装即可,打开后可安装Python环境以及Jupyter Notebook

安装pip

在安装Jupyter之前,我们需要先安装pip
(记得先安装Python,进入官网下载安装包安装即可,建议安装时勾选加入环境变量)

For Windows

  • 前往pip下载 来下载,建议选择tar.gz压缩包

  • 将下载的安装包解压到工作目录(此处举例为D:\pip-24.0),使用terminal/cmd运行以下命令

    1
    2
    cd /d D:\pip-24.0
    python setup.py install
  • 安装成功后,重新进入命令行输入pip, 即可看到帮助文档

For Mac

  • 进入get-pip.py下载找到get-pip.py,对它右键并点击下载链接文件,获得get-pip.py这一文件
  • 启动台-其他-终端中找到并打开终端,输入sudo python3 <将文件拖入>(拖入文件前一定要输入空格!)后回车。
  • 会提示输入密码,需要输入电脑开机密码。输入时不会显示,完成后回车即可。
  • 安装完成后,输入pip --version来验证pip是否安装成功。如果安装成功,应能看到pip的版本信息

安装Jupyter Notebook

在Termial/cmd中输入pip install jupyter,mac需要输入pip3 install jupyter即可自动完成安装
安装完成后,输入Jupyter Notebook即可启动。若自动跳转的网页无法访问,可在终端中找到http://localhost:8888/...http://127.0.0.1:8888/...完整复制到浏览器中打开。

Jupyter Notebook启动!

基本类型的认识

Python的变量类型:
image.png
Python的变量不需要去定义类型,直接创建即可:

1
2
3
x = "10" # 创建字符串
y = "20"
x + y # Out: '1020'

由于是字符串相加,所以是将两者直接连接

1
2
3
x = 10
y = "20"
x + y

若是int+str,则会报错(这不是必然的吗。。)
所以我们需要使用int(y)将字符串类型的y强制转换成int。

1
2
3
x = 10
y = "20"
x + int(y) # int()强制转换 Out: 30

我们可以通过给变量乘上数字来实现多次输出,也可以使用“.”操作符来执行一些操作,例如:

1
2
3
4
5
6
7
8
9
x = "小🐴"
y = "Swift "
x + " " + y * 3 # Out: '小🐴 Swift Swift Swift '

a = "xiaoma"
a = a.upper()
b = "CSharp"
b = b.lower()
a + " " + b # Out: 'XIAOMA csharp'

除此之外,输入dir('str')即可查看str的所有方法
输出时,若想将str与int相连接,应将int强制转换为str。

1
2
3
x = 6
x = x * 3 / 4
"小🐴说: " + str(x) # 强制转换 Out: '小🐴说: 4.5'

对于换行,Python拥有两种写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
x = """你可以
自己
打回车"""
y = "也可以\n使用\n换行符"
print(x)
print(y)
"""
Out: 你可以
自己
打回车
也可以
使用
换行符
"""

Lists, Tuples, Sets and Dictionaries

列表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
fruits = ["apple", "orange", "tomato", "banana"] # 创建了一个名为“fruits”的List
# 0 1 2 3
print(type(fruits)) # Out: <class 'list'>
print(fruits) # Out: ['apple', 'orange', 'tomato', 'banana']

print(fruits[2]) # Out: 'tomato'
fruits[2] = "potato" # 将第二位的改为了"potato"
print(fruits) # Out: ['apple', 'orange', 'potato', 'banana']

fruits.append("cherry") # 向列表中添加新物品
print(fruits) # Out: ['apple', 'orange', 'potato', 'banana', 'cherry']
fruits.remove("orange") # 从列表中删除橙子
print(fruits) # Out: ['apple', 'potato', 'banana', 'cherry']

nums = list(range(0, 100, 5)) # 使用range(起始,终止,步长)来创建列表(不包括终止)
print(nums) # Out: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
num2 = list(range(10)) # range(0, 10, 1)
print(num2) # Out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[0:5:2]) # 从项0(起始点)到项5(终点,不包括在内),步长为2
print(nums[0:3]) # 获取0到3项(不包括第3项)
print(nums[4:]) # 获取第4项之后的内容
print(nums[-1]) # 获取最后一项
print(nums[::-1]) # 把整个列表倒过来
# 可以使用len(), max(), min()来获取列表的某些数值
print(len(nums)) # Out: 20
print(max(nums)) # Out: 95
print(min(nums)) # Out: 0

mixed = [3, "Two", True, None] # 列表可以是混合的
print(mixed) # Out: [3, 'Two', True, None]

元组:

1
2
3
fruits = ("apple", "orange", "tomato", "banana") # 现在tomato永远是一种水果了
print(type(fruits)) # Out: <class 'tuple'>
print(fruits) # Out: ('apple', 'orange', 'tomato', 'banana')

元组和列表的区别不大,最明显的就是元素不可更改:

特性 列表 元组
可变性 可变 不可变
内存使用 更多 更少
性能 更慢 更快
创建语法 [] ()
访问语法 list[index] tuple[index]
切片语法 list[start:stop] tuple[start:stop]
连接操作 + +
乘法操作 * *
成员运算符 in in

集合:

1
2
3
4
5
6
x = {3, 3, 2, 1} # 直接创建的集合
print(type(x)) # Out: <class 'set'>
print(x) # Out: {1, 2, 3}
# 集合中的元素不重复
y = set([1,2,3,3]) # 从列表创建的集合
print(x == y) # x和y是相同的 Out: True

字典:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
serendipity = {"🐴": "小马",
"🐧": "阿斌",
"🐟": "苏辰",
"🍚": "小白",
"☀️": "阳神",
"🆘": "拯救者"} # 创建了一个字典
print(type(serendipity)) # Out: <class 'dict'>
print(serendipity) # Out: {'🐴': '小马', '🐧': '阿斌', '🐟': '苏辰', '🍚': '小白', '☀️': '阳神', '🆘': '拯救者'}

serendipity.update({"🥣": "Jack"}) # 使用update来增加
print(serendipity) # Out: {'🐴': '小马', '🐧': '阿斌', '🐟': '苏辰', '🍚': '小白', '☀️': '阳神', '🆘': '拯救者', '🥣': 'Jack'}
serendipity.pop("🐧") # 使用pop来删除
print(serendipity) # Out: {'🐴': '小马', '🐟': '苏辰', '🍚': '小白', '☀️': '阳神', '🆘': '拯救者', '🥣': 'Jack'}

print(serendipity.keys()) # 只获取字典的键 Out: dict_keys(['🐴', '🐟', '🍚', '☀️', '🆘', '🥣'])
print(serendipity.values()) # 只获取字典的值 Out: dict_values(['小马', '苏辰', '小白', '阳神', '拯救者', 'Jack'])

尾声

本节课的内容相对来说比较基础,介绍了一些基本类型。夯实基础,才能建高楼,让我们一起进步!