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()字典
    • 数字类型 非容器类型,不能转换为 字典
    • 字符串不能直接转换为 字典
    • 列表可以转换为字典,要求是一个二级列表,并且每个二级元素只能有两个值
    • 元组可以转换为字典,要求是一个二级元组,并且每个二级元素只能有两个值
avatar-img
9會員
62內容數
从基础开始,再到Python,然后是CV、BI、NLP等相关技术。从头到尾详细的教授一边人工智能。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
茶桁的沙龍 的其他內容
千里之行始于足下。 大家好,我是茶桁,这里是我们《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
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
在程式語言裡,最基本的第一堂課通常就是最簡單也最直接的輸入和輸出, 今天,會從大家耳熟能詳的"Hello Wolrd"這個經典範例開始介紹 Python的基本的輸出print語法,最後以冷笑話的範例作為結尾的Demo。 從電腦的視角來看,什麼叫做Output輸出?
Thumbnail
今天要來介紹的是Python中資料型別的函數, 這幾天學習的素材是Youtube上“程式柴大大的Python 6 小時初學者課程”,一步一步帶著大家操作並解,學習中也別忘了要多多練習,練習的部分我是把我學到的東西請Chatgpt幫我出類似的題型並讓我練習。 以下我先寫出一個簡單的code,再加以
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
本文詳細解說了 Python print() 函數的各種隱藏語法,包括 value、sep、end、file 和 flush。作者以清晰的範例和解說,讓從未接觸程式語言的人也能夠理解。而最後提到了訂閱房間的付費方式,並歡迎大家訂閱。文章內容較為詳細,提供了豐富的資訊。
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
在程式語言裡,最基本的第一堂課通常就是最簡單也最直接的輸入和輸出, 今天,會從大家耳熟能詳的"Hello Wolrd"這個經典範例開始介紹 Python的基本的輸出print語法,最後以冷笑話的範例作為結尾的Demo。 從電腦的視角來看,什麼叫做Output輸出?
Thumbnail
今天要來介紹的是Python中資料型別的函數, 這幾天學習的素材是Youtube上“程式柴大大的Python 6 小時初學者課程”,一步一步帶著大家操作並解,學習中也別忘了要多多練習,練習的部分我是把我學到的東西請Chatgpt幫我出類似的題型並讓我練習。 以下我先寫出一個簡單的code,再加以
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
本文詳細解說了 Python print() 函數的各種隱藏語法,包括 value、sep、end、file 和 flush。作者以清晰的範例和解說,讓從未接觸程式語言的人也能夠理解。而最後提到了訂閱房間的付費方式,並歡迎大家訂閱。文章內容較為詳細,提供了豐富的資訊。
在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。