python的基礎入門

初識Python

什么是Python

Python是1門程序設計語言。在開發者眼里,語言可以分為3類:

  1. 自然語言:人能聽懂的語言,例如漢語,英語,法語等等。
  2. 機器語言:機器能聽懂的語言,機器只能聽懂0和1。
  3. 程序設計語言:機器能夠聽懂,人能聽懂的語言,例如Python,C,C++ 、C# 、Java等等。

同樣的,在開發者眼里還可以分為高級程序設計語言和低級程序設計語言。越接近于人類的語言越高級,例如Python;越接近于機器語言越低級,例如匯編就屬于低級程序員設計語言。

簡而言之,python是一門高級的編程語言,而且隨著人工智能的興起,python在編程領域所占的權重是越來越大了,現在市場份額排名第一,未來的發展潛力也是巨大的,非常得到學習

編程市場份額排行榜:https://www.tiobe.com/tiobe-index/

Python的特點

Python的特點主要有語法簡潔、類庫強大、膠水語言(調用其他語言的類庫)、代碼量較少等特點

Python 運行機制

程序運行主要有兩種機制:編譯型和解釋型。

編譯型:是將代碼(源文件)通過編譯器,編譯成機器碼文件,當運行的時候直接執行機器碼文件,例如C語言;

解釋型:是將源文件通過解釋器,逐行進行翻譯并運行

編譯型和解釋型語言各有優缺點:

  • 解釋型:

缺點:執行慢
優點:可以跨平臺(操作系統)

  • 編譯型:

缺點:不能跨平臺
優點:執行快

很顯然,python是解析型語言,因為我們運行python的時候,Python 程序在執行時不需要預先編譯成機器語言代碼

什么是字面量

在代碼中,被寫下來的固定的值(數據),叫做字面量

簡單點說就是代碼寫下來你就知道它是代表什么,比如10 代表整數? true 代表布爾類型等等;想python中的基本數據類型都可以看作是字面量

"abcd"
1
3.6

?python中的基本數據類型

數值型(Number)

# 1 數字類型 整數,浮點數,復數,布爾四個類型

# 定義一個整數

a = 100

#浮點數

b = 99.9

#復數(必須是以j結尾)

c=3+4j

#boolean類型

d = True

字符串(string)

# 2 字符串
#單引號
e = '6666'
#雙引號
f = "8888"
#三引號  三引號也可以當多行注釋來使用
g = """99999"""
#常用方法
# 獲取字符串長度
print(len(f))
string = "  Hello, World!  "
print(string.strip())  # 輸出:Hello, World!
string = "Hello, World!"
words = string.split(", ")
print(words)  # 輸出:['Hello', 'World!']
list_val = ['www','baidu','com']
str_val = '.'.join(list_val)
print(str_val)  #   www.baidu.com

?字符串格式化(模板字符串)

# 三種常見的字符串的格式化 ,前二種開發中常用
# 1.%-formatting
name = 'Aaron'
login_time = 10
cost = 258.88
print('你好%s,歡迎登錄!這是您登錄的第%d次。您本次消費%.2f元' % (name,login_time,cost))
# 2.f-string
name = 'Aaron'
login_time = 10
cost = 258.8890
print(f'你好{name},歡迎登錄!這是您登錄的第{login_time}次。您本次消費{cost:.2f}元。')
# 3.str.format()
name = 'Aaron'
login_time = 10
cost = 258.8890
print('你好{},歡迎登錄!這是您登錄的第{}次。您本次消費{:.2f}元。'.format(name,login_time,cost))

列表(list)

類似于java中的arraylist集合

# 3 列表   類似于java的list集合  但python中沒有泛型的概念
#定義一個空列表
h = []
i = list()
#定義一個有數據的列表
j = [666,888,'9999']
j.append(999)
# print(j)

元組(tuple)

# 4 元組   類似于java中的數組
#特點:1 不能直接修改元組的內容,否則直接報錯 2 可以修改元組中列表的內容  3 元組只有一個數據,這個數據后面要添加逗號
#定義一個空原組
k = ()
l = tuple()
#定義非空元組
m = (6666,888,'999')
n = (66666,9999,[1,2,3])
n[2][0]=10
# print(n)

集合(set)

# 5 set  和java的set集合類似,無序不可重復
#定義一個空集合
p = set()
#定義一個有數據的集合
q = {666,888,999,666}
# print(q)
xxx = len(q)
# print(xxx)
print(max(q))
print(min(q))

字典(dictionary)

# 6 dict字典  與java中的map集合類似  key:value的結構
# 定義一個空字典
r = {}
s = dict()
#定義有數據的字典
t = {'name':'李四','age':18,'hobby':('籃球','跑步','聽歌')}
t['gender'] = '男'
print(t)
print(t['name'])

?序列

# 7 序列  
# 特點:1 序列不是一種數據類型,而是一種特殊的數據結構  
#      2 序列是指:內容連續、有序,可使用下標索引的一類數據容器
#      3 列表、元組、字符串,均可以可以視為序列
# 得到列表序列的切片
# 序列[起始下標:結束下標:步長]
# 表示從序列中,從指定位置開始,依次取出元素,到指定位置結束,得到一個新序列
u =[1,2,3,4,5]
v = u[1:4]
# print(v)  #[2, 3, 4]
# 得到元組的序列切片
w = (1,2,3,4,5)
x = w[0:3]
print(x)  #(1, 2, 3)
# 得到字符串的切片
y = "123456"
z = y[3:-1]
print(z)  #45

變量

什么是變量

變量:在程序運行時,能儲存計算結果或能表示值的抽象概念。

簡單的說,變量就是在程序運行時,記錄數據用的?

變量的格式

變量名? =? 類型

python常用的內置函數?(重點)

print函數

結構:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

?objects:要打印輸出的數據

sep=' ':表示以引號內的內容作為分隔符,默認是空格

end='\n':用于控制是否換行,默認是換換行

file:必須是一個具有 write(string) 方法的對象;如果參數不存在或為 None,則將使用 sys.stdout

flush=False:輸出是否緩存通常取決于 file,但如果 flush 關鍵字參數為 True,輸出流會被強制刷新

?print后的括號中如果是數學表達式,則打印結果為表達式最終運算的結果

print(1+2+3+4+5)  #15
print(2*4)        #8

type()函數

我們可以通過type()語句來得到數據的類型

語法:type(被查看類型的數據)

?

運行結果

int函數,float函數,str函數

?類型轉換注意事項:

1.?任何類型,都可以通過str(),轉換成字符串

2.?字符串內必須真的是數字,才可以將字符串轉換為數字

input()函數

??使用?input()?語句可以從鍵盤獲取輸入

??使用一個變量接收(存儲)?input?語句獲取的鍵盤輸入數據即可

??要注意,無論鍵盤輸入什么類型的數據,獲取到的數據永遠都是字符串類型

name  = input("請輸入你的名字:")
age = input('請輸入你的年齡:')print(f'用戶名: {name} 年齡: {age}')print(type(name))
print(type(age))

?

Python語句(重點)

判斷語句

if語句

語法:

if? ?判斷條件:

? ? ? ? 執行語句

  • 當判斷條件成立時,會執行執行語句的代碼
  • 判斷條件可以加括號也可以不加,但后面的冒號不能省略

if ....else....語句

?語法:

if 判斷條件 :

? ? ? ? 滿足條件執行的語句

else:

? ? ? ? 不滿足條件執行的語句

??if?和其代碼塊,條件滿足時執行

??else?搭配?if?的判斷條件,當不滿足的時候執行

?if elif else語句

?語法:

if 條件一:

? ? 滿足條件一的執行語句1

? ? 滿足條件一的執行語句2

? ? ...省略...

elif 條件二:

? ? 滿足條件二的執行語句1

? ? 滿足條件二的執行語句2

? ? ...省略...

elif 條件三:

? ? 滿足條件三的執行語句1

? ? 滿足條件三的執行語句2

? ? ...省略...

else:

? ? 不滿足條件的執行語句1

? ? 不滿足條件的執行語句2

? ? ...省略...

year = input("請輸入一個年份: ")
year = int(year)if year % 4 == 0 and year % 100 != 0:print("%d 是一個普通閏年" %(year))
elif year % 400 == 0:print("%d 是世紀閏年" % (year))
else:print("%d 不是閏年" % (year))

?語句嵌套:

就是在if 語句里面也可以嵌套if..else..或者if ..elif...else,同理在if..else里面也可以嵌套if 和if ..elif...else

age = 18
university = None
total_score = 700
if age > 16:if total_score > 680:print('你可以選擇c9大學')university = '北京大學'if university is None:print('很遺憾,你沒有考上大學')else:print(f'恭喜你啦,成功考上了 {university}')elif total_score > 600:print('你有機會上211')elif total_score > 500:print('你有機會上一本')elif total_score > 380:print('你有機會上二本')else:print('很遺憾,你的選擇很有限,只能上專科和技校')

Python的循環語句

while循環 (和java的用法幾乎一樣)

語法:

while 條件:

? ? 執行語句1

? ? 執行語句2

? ? ...省略...

  • 執行順序: 判斷條件? ?——》 條件成立? -》 執行語句1 -》執行語句2 ->在重新判斷條件
  • ?每次進入循環后,將執行語句全部執行完畢后再次來到判斷,如果條件依然成立,則繼續進入循環,以此類推,直到條件不成立,跳出循環

注意:

??條件需提供布爾類型結果,?True?繼續,?False?停止

??空格縮進不能忘

??請規劃好循環終止條件,否則將無限循環

?

for循環(用法和java有點區別)

語法:

for? 臨時變量? in 迭代數據集:

? ? ? ? 執行語句

java版: for (int i = 0 ;i<100;i++){執行語句}?

迭代數據集可以只字符串,也可以列表,字典,元組等

# 打印99乘法表
for i  in range(1,10):for j in range(1,i+1):print(str(j)+"*"+str(i)+"="+str(i*j)+" ",end="\t")print()

?

continue

continue關鍵字用于:中斷本次循環,直接進入下一次循環

continue可以用于:????for循環和while循環,效果一致

break

?可以直接跳出本次循環

函數(重點)

什么是函數?

函數其實就是一段為了實現特定功能且可以重復使用的代碼塊

語法

?def 函數名 (參數):

?????函數體

? ? ?return 返回值

?注意:

  • ?參數如不需要,可以省略
  • ?返回值如不需要,可以省略
  • ?函數必須先定義后使用
  • 如果函數沒有定義返回值類型,默認返回None這個類型
# 定義函數
def sum(num1,num2):return num1+num2# 使用函數
print(sum(6,8))

?知識擴展:

Python中有一個特殊的字面量:None,其類型是:<class 'NoneType'>

無返回值的函數,實際上就是返回了:None這個字面量

None表示:空的、無實際意義的意思

函數返回的None,就表示,這個函數沒有返回什么有意義的內容。

也就是返回了空的意思。

函數的說明文檔

簡單點說就是函數的說明文檔,表明函數如何使用,有怎么左右,鼠標懸停時可以看到的內容

通過多行注釋的形式,對函數進行說明解釋

# 定義帶說明文檔的函數
def calculate(num1,num2,operation):"""num1: 數字1  (一個number類型)num2: 數字2  (一個number類型)operation: 字符串操作類型,支持  + - * / 這四種類型retuen: 返回一個計算結果"""result = Noneif operation == '+':result = num1+ num2if operation == '-':result = num1- num2if operation == '*':result = num1* num2if operation == '/':result = num1/ num2return resultprint(calculate(6,6,'-'))

?

?

變量的作用域(重點):

變量的作用域:簡單說就是變量可以被訪問的范

注意:變量的作用域這個其實是非常重點的,難度也不低,需要注意的地方很多,細節也很多,需要自己不斷積累的;不管是哪一門編程語言,我們都應該對變量的訪問范圍有清晰的認知,這樣我們才可以更好的掌控程序

局部變量

所謂局部變量是定義在函數體內部的變量,即只在函數體內部生效

局部變量的作用:在函數體內部,臨時保存數據,即當函數調用完成后,則銷毀局部變量

細節:python中有一個特點,就是定義在函數中的變量在整個函數內都是可以被訪問到的,這個和java有點不一樣,java的變量的訪問范圍受修飾符(publish,private...)和塊決定

try{

int? xx = 100

// 可能會發生異常的邏輯 throw new Exception();

}

catch(IOException e){

? ? ? ?system.out.println(xx)? ?//在這里是無法訪問xx的

// 發生IOException時,執行此代碼塊

}

全局變量

?所謂全局變量,指的是在函數體內、外都能生效的變量

在python中,全局變量其實就是定義在腳本最外層的變量(類似于java中的類屬性)

?

?就近原則:當全局變量和局部變量發生沖突時,優先使用局部變量?

global?關鍵字

使用?global關鍵字?可以在函數內部聲明變量為全局變量,?如下所示

?若不聲明,則num = 100 因為:?當全局變量和局部變量發生沖突時,優先使用局部變量

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75269.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75269.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75269.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MD編輯器中的段落縮進怎么操作

在 Markdown&#xff08;MD&#xff09;編輯器中&#xff0c;段落的縮進通常可以通過 HTML 空格符、Markdown 列表縮進、代碼塊縮進等方式 實現。以下是幾種常見的段落縮進方法&#xff1a; 1. 使用全角空格 ( ) 在一些 Markdown 編輯器&#xff08;如 Typora&#xff09;中&…

8.neo4j圖數據庫python操作

使用圖數據庫的原因 圖數據庫使用neo4j的原因&#xff1a;neo4j使用率高&#xff0c;模板好找&#xff0c;報錯能查。 紅樓夢人物關系圖地址 GraphNavigator neo4j學習手冊 https://www.w3cschool.cn/neo4j/neo4j_need_for_graph_databses.html CQL代表的是Cypher查詢語言…

[Lc6_記憶化搜索] 掃雷游戲 | 理解 遞歸vs記憶化搜索vs dp

目錄 ?1.掃雷游戲 題解 1.記憶化搜索 解法一&#xff1a;遞歸 解法二&#xff1a;記憶化搜索 解法三&#xff1a;動態規劃 ?1.掃雷游戲 (暴力模擬&#xff09; 鏈接&#xff1a;529. 掃雷游戲 讓我們一起來玩掃雷游戲&#xff01; 給你一個大小為 m x n 二維字符矩陣…

云原生周刊:Kubernetes v1.33 要來了

開源項目推薦 Tekton Tekton 是一個開源的 K8s 原生 CI/CD 系統&#xff0c;它為構建、測試和部署自動化工作流提供了強大而靈活的框架。Tekton 提供了一套標準化的 API 和自定義資源&#xff08;CRDs&#xff09;&#xff0c;使得開發者能夠在 K8s 集群中定義和管理 CI/CD 管…

服務新增節點、遷移筆記

文章目錄 基礎配置部分基礎配置-hosts基礎配置-jdk包準備基礎配置-jdk環境變量配置基礎配置-skywalking包 基礎配置-apollo配置。 # 文件夾及配置基礎配置-tomcat基礎配置-nginx基礎配置部分-磁盤掛載(這個也差點漏掉)。 防火墻部分防火墻部分-數據庫及腳本防火墻部分-redis防火…

第十一章:Python PIL庫-圖像處理

一、PIL庫簡介 PIL&#xff08;Python Imaging Library&#xff09;是一個功能強大的圖像處理庫&#xff0c;它提供了豐富的圖像處理功能&#xff0c;包括圖像的打開、處理和保存等操作。PIL支持多種圖像文件格式&#xff0c;如JPEG、PNG、BMP等&#xff0c;并且可以完成對圖像…

【編譯、鏈接與構建詳解】Makefile 與 CMakeLists 的作用

【編譯、鏈接與構建詳解】Makefile 與 CMakeLists 的作用 前言源代碼&#xff08;.c、.cpp&#xff09;編譯編譯的本質編輯的結果編譯器&#xff08;GCC、G、NVCC 等&#xff09; 目標文件&#xff08;.o&#xff09;什么是 .o 目標文件為什么單個 .o 目標文件不能直接執行&…

Ubuntu / Debian 創建快捷方式啟動提權

簡述 在 Linux 系統中&#xff0c;.desktop 文件是 桌面入口文件&#xff0c;用于在桌面環境&#xff08;如 GNOME、KDE&#xff09;中定義應用程序的啟動方式、圖標、名稱等信息。當你執行 touch idea.desktop 時&#xff0c;實際上創建了一個空的 .desktop 文件&#xff08;…

ISIS報文

IS-IS 報文 目錄 IS-IS 報文 一、報文類型與功能 二、報文結構解析 三、核心功能特性 四、典型應用場景 五、抓包數據分析 六、總結 IS-IS&#xff08;中間系統到中間系統&#xff09;協議報文是用于鏈路狀態路由協議中網絡設備間交換路由信息的關鍵載體&#xff0c;其設…

beikeshop多商戶跨境電商獨立站最新版v1.6.0版本源碼

一.介紹 beikeshop跨境電商獨立站最新版V1.6.0源碼 多商戶 多商家 多語言 多幣結算 本博主親測搭建代碼全開源質量相對來說很穩定的 二.服務器環境 系統&#xff1a;CentOS、 環境&#xff1a;PHP7.4 Nginx 1.21 MySQL 5.6 常見插件&#xff1a;fileinfo &#xff1b; re…

Redis批量操作詳解

一、原生批量命令&#xff08;MSET&#xff09; 適用場景&#xff1a;所有鍵的過期時間相同或無過期設置&#xff0c;且無需條件判斷。 方法&#xff1a; 將多個SET命令合并為MSET命令&#xff0c;但需要注意MSET的局限性&#xff08;無法設置過期時間&#xff0c;且所有鍵值對…

Spring Boot 集成實戰:AI 工具如何自動生成完整微服務模塊

在數字化轉型的浪潮中&#xff0c;開發效率和質量是企業競爭力的關鍵要素。飛算 JavaAI 作為一款創新的 AI 工具&#xff0c;能在 Spring Boot 開發中&#xff0c;自動生成完整微服務模塊&#xff0c;極大提升開發效率。下面&#xff0c;我們就詳細介紹如何借助飛算 JavaAI&…

算法 | 2024最新算法:斑翠鳥優化算法原理,公式,應用,算法改進研究綜述,matlab代碼

基于斑翠鳥優化算法的原理、應用及改進研究綜述 一、算法原理 斑翠鳥優化算法(Pied Kingfisher Optimizer, PKO)是2024年由Bouaouda等人提出的一種新型仿生智能優化算法,其靈感來源于斑翠鳥的捕食行為與共生關系。算法通過模擬斑翠鳥的棲息懸停、潛水捕魚及與其他生物的共生…

RabbitMQ高級特性--重試特性

目錄 1.重試配置 2.配置交換機&隊列 3.發送消息 4.消費消息 5. 運行程序觀察結果 6. 手動確認 注意&#xff1a; 在消息傳遞過程中, 可能會遇到各種問題, 如網絡故障, 服務不可用, 資源不足等, 這些問題可能導致消息處理失敗. 為了解決這些問題, RabbitMQ 提供了重試機制, …

Vue 組件通信 - 中央事件總線

Vue 漸進式JavaScript 框架 基于Vue2的學習筆記 - Vue組件通信 - 中央事件總線 目錄 中央事件總線 圖示 準備工作 設置頁面元素 創建組件 總結 中央事件總線 使用vue的監聽和觸發來實現中央事件總線方式。 on監聽 emit觸發&#xff0c;組件按鈕綁定點擊事件&#xff0c…

5.0 WPF的基礎介紹1-Grid,Stack,button

WPF: Window Presentation Foundation. WPF與WinForms的對比如下&#xff1a; 特性WinFormsWPF技術基礎基于傳統的GDI&#xff08;圖形設備接口&#xff09;基于DirectX&#xff0c;支持硬件加速的矢量渲染UI設計方式拖拽控件事件驅動代碼&#xff08;簡單但局限&#xff09;…

QT軟件設計可考慮回答

在Qt應用中是否引入抽象類需要根據具體場景權衡&#xff0c;以下是分層建議&#xff1a; 建議采用抽象類的3個典型場景&#xff1a; 傳感器系統抽象&#xff08;強推薦&#xff09; class AbstractSensor { public:virtual ~AbstractSensor() default;virtual QVector<L…

pytorch學習(b站小土堆學習)

1 環境配置 參考鏈接 2. dir 和 help函數 dir()&#xff1a;用于查看某一模塊函數的方法 help()&#xff1a; 用于查看某方法的使用方法 3. dataset類實戰 利用Image對象打開圖片&#xff0c;利用os模塊的地址拼接組成圖片路徑 當我們用方括號訪問元素對象時&#xff0c;…

Unity TextMeshPro 實現文本逐字淡出效果

Unity TextMeshPro 實現文本逐字淡出效果 前言項目思路場景布置代碼編寫 前言 在處理角色對話時經常會用到一些文本動畫&#xff0c;正好記錄一下。使用 TextMeshPro&#xff0c;我們可以直接操作文本的頂點數據&#xff0c;實現諸如漸變、動畫等效果&#xff0c;為游戲界面和…

Mathtype無法插入到Word中

在word工具欄上有沒有出現Mtahtype&#xff0c;會出現以下兩種情況&#xff1a; 1. 沒有出現Mtahtype 2. 出現Mtahtype&#xff0c;但是點擊會出現彈窗 “ Couldnt find the MathPage.wll ” 解決方案 首先查看word版本是32位還是64位&#xff0c;這個位數是office安裝位數…