2. 初识Python脚本

閱讀時間約 13 分鐘

Python的系列课程是写给零基础的小白看的,如果基础比较好的小伙伴可以暂时先不关注,等待后续课程。

Hi, 大家好,我是茶桁。

之前的课程已经给大家讲解了Python相关特性和基本语法。那么这节课呢,我们尝试着从最简单的脚本来开始认识Python。

在开始这节课之前呢,我是默认大家已经安装好了VSCode,并且配置好了Jupyter环境和Python的基本环境。如果在这一步有疑问的小伙伴,可以留言私信我。

我们在终端里输入:

 $ python -V
 Python 3.10.11

可以看到自己的Python版本。

这个时候,我们其实已经可以在终端里进行Python的代码编辑了,如下:

 $ python
 >>> print("Hello AI Cheats")
 Hello AI Cheats

如下图:

raw-image

我们这里需要理解一下,编写python程序的文件,称为python的脚本或程序。要求我们当前的python脚本的文件后缀名必须是.py,如果是Jupyter的文件,后缀是.ipynb

print() 输出函数

print可以在程序中输出一些内容,如字符串,数字等等。

函数就是为了完成一些功能,例如: print就是为了输出数据。

变量

变量就是用一个英文字符串来记录或标记一些数据,并且这个被标记的数据是可以变化的。

比如 num = 10,就是把数据10赋值给了变量num来使用,之后就可以使用num来代替这个10的数据。

命名规范

这里我们强调一下Python的命名规范,所有在教授编程的教程中最初一定都会强调规范性。

变量的命名规范如下:

  • 变量名可以使用字母,数字,下划线_,
  • 不能以数字开头
  • 严格区分大小写
  • 不要使用中文
  • 不要使用关键字 if else True False print

当然具体关键字并不仅仅是这些,这里列出了Python的关键字,大家可以自行查看一下,命名的时候需要进行避免。

变量的定义方式

在遵循了变量命名规范之下,我们可以有以下几种定义方式:

 # 第一种定义方式
 a = 10
 b = 20
 ​
 # 第二种定义方式
 a,b = 30, 40

这里我们来思考一个问题,如何实现两个变量的数据相互交换呢?

 # 定义两个变量
 a = 10
 b = 20
 ​
 # 交换两个变量的值
 ...


如果使用最普通的方式完成变量数据的交换,那么我们可以使用如下步骤:

  1. 把a变量的值 赋值给c ,此时 c变量中 就是 10
  2. 把b变量的值 赋值给a , 此时 a变量中 就是 20
  3. 把c变量的值 赋值给b , 此时 b变量中 就是 10
 # 普通方式交换数据
 a = 10
 b = 20
 ​
 c = a
 a = b
 b = c
 ​
 print(a, b)

输出结果:

 20, 10


我们还可以利用python定义比变量的语法来实现变量的数据交换

 # 定义比变量的语法方式
 a = 10
 b = 20
 a,b = b,a
 print(a, b)

输出结果:

 20,10

Python的数据类型

数据类型就是数据的表现形式,比如 “你好” 就是一个字符串,200 就是一个数字。

在程序当中除了这种常用的字符和数字外还有很多其它的数据表现形式。

在Python中,我们可以使用type()函数来返回当前数据的数据类型:

 s = 'ilovechaheng'
 res = type(s)
 print(res)

输出结果:

 <class 'str'>

字符串类型

  • 单双引号都可以定义字符串
  • 三引号也可以定义字符串
  • 单双引号定义的字符串不能随意换行,需要在换行时指明换行符
  • 字符串中的引号可以互相嵌套,但是不能嵌套自己(例如不能在单引号中嵌套单引号,除非转义)
  • 字符串中可以使用转义字符,如 \r \n \t ...
  • 如果不想在字符串中实现转义字符可以在字符定义时 加 love = r'\nihao \shijie'
 # 单引号和双引号进行定义
 love = 'iloveyou'
 hello = "你好 世界"
 ​
 # 使用三引号实现大字符串的定义,一般用于大文本字符串的定义,并且大字符串,可以换行
 s = '''
 比如说这一个
 很长很长的文章内容。。。
 '''

数字类型

  • int 整型
  • float 浮点类型
  • complex 复数
  • bool 布尔类型(True,False)
 # 数字类型 Number
 varn = 521
 varn = -1111
 varn = 3.1415926
 varn = 0x10  # 十六进制
 varn = b'001100111' # bytes
 ​
 # 复数
 varn = 5+6j  # complex
 ​
 # 布尔类型 bool
 varn = True
 varn = False
 # print(varn,type(varn))
 ​
 # 数值类型可以参与运算
 a = 10
 b = 20
 print(a+b) # 输出结果 30

List列表类型

  • 列表用来表示一系列数据,例如: 需要记录一组数字或其它数据
  • 列表中存储的数据可以是任意类型的
  • 在需要记录多个数据时,可以使用中括号进行定义 [],
  • 并且每个数据之间使用逗号分隔 ,
  • 例如以下数据,定义了几组数字
  • 列表中存储的每一组数据,称为元素
  • 列表中存储的数据,可以通过下标的方式进行获取
  • 那么列表中元素的值可不可以存储一个列表,称为 二级列表(二维列表) 或者 多级列表 (多维列表)

关于列表中的下标,正读和反读的正负号是不一样的:

 # 关于列表中的下标
 '''
  0   1   2   3   4
 ['a','b',521,'pai',3.1415926]
  -5   -4   -3 -2   -1
 '''
 a = ['a','b',521,'pai',3.1415926]
 print(a[-3])

输出结果:

 521

tuple 元组类型的定义

  • 在定义多个数据内容时,可以选择使用List列表类型
  • 还可以使用元组类型来定义,
  • 元组和列表非常像,都时用于存储多个数据时使用
  • 元组使用小括号进行定义(),列表使用中括号进行定义
  • 元组的最大特点就是值不能被改变
 vart = (1,2,3,'a','b')
 # 元组的其它定义方式
 vart = 1,2,3

注意在定义元组时,如果元组中只有一个元素,那么需要加, 不然就不是元组类型了

Dict字典类型

  • 字典也是用于存储一组或多组数据时使用,使用大括号 {}来定义
  • 字典是 键值对 的存储方式 name :admin
  • 键和值之间使用冒号进行分隔,多组键值对之间使用逗号分隔
  • 键必须是字符串或数字类型,值可以是任意类型
  • 键名不能重复,值可以重复
 # 比如需要记录一本书的相关数据 书名,作者,价格,。。。
 vard = {'title':'<<鬼谷子>>','author':'鬼谷子','price':'29.99'}
 # print(vard,type(vard))
 # {'title': '<<鬼谷子>>', 'author': '鬼谷子', 'price': '29.99'} <class 'dict'>
 ​
 # 获取字典中的值
 print(vard['title'])
 # 字典中的键不能重复使用,否则会覆盖
 vard = {'a':10,'b':10,'c':20,'a':'aa',1:'abcdef','2':'2222'}
 print(vard)

输出结果:

 <<鬼谷子>>
 {'a': 'aa', 'b': 10, 'c': 20, 1: 'abcdef', '2': '2222'}

在python之前的版本中,字典是无序的

set集合类型

  • set集合是一个 无序且元素不重复的 集合的数据类型
  • set集合使用 中括号或者set()方法来定义
  • 如果需要定义一个空集合时 只能使用 set()方法,因为大括号时定义的空字典
  • 集合主要用于运算,交集,差集,并集,对称集合
 a = {1,2,3,'a'}
 # 给集合添加元素
 # a.add('b')
 # 无法获取集合中的单个元素,但是可以添加和删除
 # a.discard('a')
 # print(a)
 # 检查当前的元素是否在集合中
 # print(1 in a)
 ​
 ​
 # 集合主要用于运算,交集,差集,并集,对称集合
 a = {1,2,3,'a','b'}
 b = {1,'a',22,33}
 ​
 print(a & b) # 交集 {1, 'a'}
 print(a - b) # 差集 {'b', 2, 3} a 集合有,b集合没有的
 print(a | b) # 并集 {1, 2, 3, 33, 'a', 'b', 22} 两个集合,放到一起,并且去重
 print(a ^ b) # 对称差集 {33, 2, 3, 'b', 22}

输出结果:

 {1, 'a'}
 {2, 3, 'b'}
 {1, 2, 3, 'a', 33, 22, 'b'}
 {33, 2, 3, 22, 'b'}


总结

最后,让我们来进行总结一下,关于Python的数据类型可以查看如下列表:

 字符串 string
 数字类型 Number
    整型 int
    浮点 float
    复数
    布尔 bool
 列表 list
 元组 tuple
 字典 dict
 集合 set
 ​
 可变数据类型:列表,字典,集合
 不可不数据类型: 字符串,数字,元组
 ​
 容器类型数据 : 字符串,列表,元组,集合,字典
 非容器类型数据: 数字,布尔类型

数据类型转换

什么是数据类型转换?

把一个数据类型转换为另一个数据类型,例如 字符串转为数字

为什么需要数据类型转换?

因为不同的数据类型之间不能运算

数据类型转换的形式?

  • 自动类型转换
  • 强制类型转换

自动类型转换

当两个不同的值进行运算时,结果会向更高的精度进行计算:True ==> 整型 ==> 浮点 ==> 复数

 a = 123
 b = True  # 在和数字运算时 True转为数字1,False转为数字 0
 print(a+b)
 print(12.5+22)
 print(True+3.14)

输出结果:

 124
 34.5
 4.140000000000001

强制类型转换

python中的每个数据类型都有对应的方法,可以对数据类型进行转换

  • str()可以把所有的其它数据类型转换为字符串类型
  • int()字符串转数字类型时,如果字符串中是纯数字,可以转换,其它容器类型不能转为数字int类型
  • float()浮点类型的转换和int类型一样,不过转换的结果是浮点类型
  • bool() 可以把其它类型转换布尔类型的True或False
    • 以下情况转bool的结果是 False: '',0,0.0,False,[],{},(),set()
  • list()列表
    • 数字类型是 非容器类型,不能转换为列表
    • 字符串 转换为列表时 会把字符串中的每一个字符当做列表的元素
    • 集合 可以转换为 list列表类型
    • 元组 可以转换为 list列表类型
    • 字典 可以转换为 list列表类型,只保留了字典中的键
  • tuple()元组
    • 数字类型 非容器类型,不能转换为元组
    • 其它容器类型的数据进行转换时,和列表一样
  • set()集合
    • 数字类型 非容器类型,不能转换为 集合
    • 字符串,列表,元组 可以转为 集合 结果是无序的
    • 字典转换为集合时,只保留了字典的键 key
  • dict()字典
    • 数字类型 非容器类型,不能转换为 字典
    • 字符串不能直接转换为 字典
    • 列表可以转换为字典,要求是一个二级列表,并且每个二级元素只能有两个值
    • 元组可以转换为字典,要求是一个二级元组,并且每个二级元素只能有两个值
9會員
62內容數
从基础开始,再到Python,然后是CV、BI、NLP等相关技术。从头到尾详细的教授一边人工智能。
留言0
查看全部
發表第一個留言支持創作者!
茶桁的沙龍 的其他內容
千里之行始于足下。 大家好,我是茶桁,这里是我们《AI秘籍》的第一节,让我们先从Python来开始好好的打好基础。 第一堂课,我们先从最基础的Python特性开始,当然,还有一些基本语法。 上来就开始讲特性和语法,说明我们将会遗弃惯用的“环境搭建”等更基础的内容,那些内容网上已经很丰富了,一查
Hi,大家好。我是茶桁。 前两节我们学习了基本的Python特性和语法,并且认识了一些基本的Python脚本。今天,我们来学习一下Python的运算符,而我们选择的版本为Python3。 什么是运算符 为了能让我们的学习顺利进行下去,首先我们需要先弄明白:什么是运算符。 这里举一个简单的栗子
Hi,大家好。我时茶桁。 最近,我花了几天时间仔细思考了一下即将要开始写的专栏《AI秘籍》,再根据自己的能力大概规划了一下。目前大致已经理出了一些相关信息可以分享给大家。 专栏形式 本次专栏应该会以文章的形式先和大家见面,后续还会根据能力以原本的文章为准录制视频版本。 专栏平台 就如前一篇
Hi, 大家好,我是茶桁,这里为自己做个广告,目前打算开始写一整个系列《AI秘籍》。 这一段时间内我写过一个系列《零基础学习大语言模型》(目前还没写完)。 说实话,这个系列其实原出处并不是我,严谨的说来,有涉嫌擦边“洗稿”的嫌疑,所以最后放弃了收费的想法,仅仅对一些模型,资源以及计算结果进行了补
千里之行始于足下。 大家好,我是茶桁,这里是我们《AI秘籍》的第一节,让我们先从Python来开始好好的打好基础。 第一堂课,我们先从最基础的Python特性开始,当然,还有一些基本语法。 上来就开始讲特性和语法,说明我们将会遗弃惯用的“环境搭建”等更基础的内容,那些内容网上已经很丰富了,一查
Hi,大家好。我是茶桁。 前两节我们学习了基本的Python特性和语法,并且认识了一些基本的Python脚本。今天,我们来学习一下Python的运算符,而我们选择的版本为Python3。 什么是运算符 为了能让我们的学习顺利进行下去,首先我们需要先弄明白:什么是运算符。 这里举一个简单的栗子
Hi,大家好。我时茶桁。 最近,我花了几天时间仔细思考了一下即将要开始写的专栏《AI秘籍》,再根据自己的能力大概规划了一下。目前大致已经理出了一些相关信息可以分享给大家。 专栏形式 本次专栏应该会以文章的形式先和大家见面,后续还会根据能力以原本的文章为准录制视频版本。 专栏平台 就如前一篇
Hi, 大家好,我是茶桁,这里为自己做个广告,目前打算开始写一整个系列《AI秘籍》。 这一段时间内我写过一个系列《零基础学习大语言模型》(目前还没写完)。 说实话,这个系列其实原出处并不是我,严谨的说来,有涉嫌擦边“洗稿”的嫌疑,所以最后放弃了收费的想法,仅仅对一些模型,资源以及计算结果进行了补
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
‘一年前’ 今天是高中新生訓練的日子,我帶著既期待又怕受傷害的心情,穿上學校統一發放的囚服,也就是高中制服,疲憊地踏出家門。 一路上我看著與往常到國中不同的路程,覺得有點新鮮又有點期盼。 要是能談場轟轟烈烈的校園愛情該有多好? 結果不盡人意的是,一踏進校園就得做新生訓練。
Thumbnail
柳旭有點在意,雖然莫斐師兄領著眾人說要去茶樓喝茶,但莫錚師兄卻是一人去處理他們要下榻的酒樓訂房。他想了想,與其和大夥兒與莫斐師兄去喫茶,直接跟著莫錚師兄去酒樓說不定還比較趣味。
(裝修投訴個案 編號F0115) (文章archive:https://hkdecoman.com/articles) (本版現開始有系統地組織戶主的裝修投訴,並提供免費及公開的獨立分析。版友如有裝修投訴,請inbox版主,將相片連同相關狀況的說明清晰列出,方便版主提供意見。戶主可選擇「即時公開」
三分微光的新作品《充滿心機與謎團的成人戀愛啟蒙社》目前參加悅閱的小說比賽,有興趣的朋友,可以Google悅閱+成人戀愛啟蒙社一觀。 喜歡本篇故事嗎?那就收藏一下讓我知道^^ 三分微光目前出
雲都裂了, 炸了滿天的夕陽。
Thumbnail
日前國立清華大學於畢業典禮發生致詞代表疑似以骨瘦如柴、環境惡劣形容馬來西亞,不但於典禮直播時引發討論,爾後更遭網友與媒體轉傳、熱議。簡短數言隱含歧視之嫌,也引起校生、網友大篇幅批判與論戰。這段話究竟有無歧視意味?又,冰山下隱然傳出更多的危險信號,你發現了嗎?身為坐在台下的應屆畢業生,我有些話要說……
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
‘一年前’ 今天是高中新生訓練的日子,我帶著既期待又怕受傷害的心情,穿上學校統一發放的囚服,也就是高中制服,疲憊地踏出家門。 一路上我看著與往常到國中不同的路程,覺得有點新鮮又有點期盼。 要是能談場轟轟烈烈的校園愛情該有多好? 結果不盡人意的是,一踏進校園就得做新生訓練。
Thumbnail
柳旭有點在意,雖然莫斐師兄領著眾人說要去茶樓喝茶,但莫錚師兄卻是一人去處理他們要下榻的酒樓訂房。他想了想,與其和大夥兒與莫斐師兄去喫茶,直接跟著莫錚師兄去酒樓說不定還比較趣味。
(裝修投訴個案 編號F0115) (文章archive:https://hkdecoman.com/articles) (本版現開始有系統地組織戶主的裝修投訴,並提供免費及公開的獨立分析。版友如有裝修投訴,請inbox版主,將相片連同相關狀況的說明清晰列出,方便版主提供意見。戶主可選擇「即時公開」
三分微光的新作品《充滿心機與謎團的成人戀愛啟蒙社》目前參加悅閱的小說比賽,有興趣的朋友,可以Google悅閱+成人戀愛啟蒙社一觀。 喜歡本篇故事嗎?那就收藏一下讓我知道^^ 三分微光目前出
雲都裂了, 炸了滿天的夕陽。
Thumbnail
日前國立清華大學於畢業典禮發生致詞代表疑似以骨瘦如柴、環境惡劣形容馬來西亞,不但於典禮直播時引發討論,爾後更遭網友與媒體轉傳、熱議。簡短數言隱含歧視之嫌,也引起校生、網友大篇幅批判與論戰。這段話究竟有無歧視意味?又,冰山下隱然傳出更多的危險信號,你發現了嗎?身為坐在台下的應屆畢業生,我有些話要說……