【Python】從基礎到進階(二):了解Python語言基礎以及數據類型轉換、基礎輸入輸出

在這里插入圖片描述

🔥 個人主頁:空白詩

在這里插入圖片描述

文章目錄

    • 一、引言
    • 二、基本數據類型轉換
      • 1. 隱式轉換
      • 2. 顯式轉換
    • 三、基本輸入輸出
      • 1. 輸入(input)
      • 2. 輸出(print)
      • 3. 案例:輸入姓名、年齡、身高以及體重,計算BMI指數。
      • 4. 使用 `pprint()` 函數輸出
    • 四、總結
      • 1. 數據類型轉換
      • 2. 基本輸入輸出操作

在這里插入圖片描述

一、引言

在上一篇文章 【Python】從基礎到進階(一):了解Python語言基礎以及變量的相關知識 中,我們介紹了Python編程的基本概念、語法以及如何定義和使用變量。這為我們理解和編寫Python代碼奠定了堅實的基礎。

在本篇文章中,我們將繼續探討Python語言的核心基礎,重點關注數據類型轉換和基礎輸入輸出操作。這些知識對于編寫功能豐富、交互性強的Python程序至關重要。數據類型轉換使我們能夠在不同類型的數據之間進行轉換,從而實現更多的計算和操作。而輸入輸出操作則是我們與用戶進行信息交互的基本手段。

通過閱讀本篇文章,您將學會:

  • 理解并應用數據類型轉換方法
  • 實現用戶輸入和程序輸出的基本操作
  • 使用Python編寫簡單的交互式程序

讓我們從Python語言的基礎知識開始,逐步深入到數據類型轉換和基礎輸入輸出的具體內容,繼續我們的Python學習之旅。


二、基本數據類型轉換

在這里插入圖片描述

在編寫Python程序時,數據類型轉換是一個常見且重要的操作。數據類型轉換分為隱式轉換顯式轉換。了解如何在不同數據類型之間進行轉換可以提高代碼的靈活性和可維護性。

1. 隱式轉換

隱式轉換是指Python在需要時自動進行的數據類型轉換。通常發生在混合類型的運算中。例如,將整數和浮點數相加時,Python會自動將整數轉換為浮點數:

x = 10  # 整數
y = 3.5  # 浮點數
result = x + y
print(result)  # 輸出 13.5,x 被隱式轉換為浮點數

2. 顯式轉換

顯式轉換是通過使用內置函數手動進行的數據類型轉換。以下是一些常用的顯式轉換方法及其使用詳情:

函數作用示例
int(x)x 轉換成整數類型int('123') 將字符串 '123' 轉換為整數 123
float(x)x 轉換成浮點數類型float('123.45') 將字符串 '123.45' 轉換為浮點數 123.45
str(x)x 轉換為字符串str(123) 將整數 123 轉換為字符串 '123'
bool(x)x 轉換為布爾值bool(0) 將整數 0 轉換為布爾值 False
list(x)x 轉換為列表list((1, 2, 3)) 將元組 (1, 2, 3) 轉換為列表 [1, 2, 3]
tuple(x)x 轉換為元組tuple([1, 2, 3]) 將列表 [1, 2, 3] 轉換為元組 (1, 2, 3)
set(x)x 轉換為集合set([1, 2, 2, 3]) 將列表 [1, 2, 2, 3] 轉換為集合 {1, 2, 3}
dict(x)x 轉換為字典dict([('a', 1), ('b', 2)]) 將列表 [('a', 1), ('b', 2)] 轉換為字典 {'a': 1, 'b': 2}
frozenset(x)x 轉換為凍結集合(不可變集合)frozenset([1, 2, 2, 3]) 將列表 [1, 2, 2, 3] 轉換為凍結集合 frozenset({1, 2, 3})
complex(real [,imag])創建一個復數complex(1, 2) 創建一個復數 1+2j
repr(x)x 轉換為表達式字符串repr(123) 將整數 123 轉換為表達式字符串 '123'
eval(str)計算在字符串中的有效 Python 表達式,并返回一個對象eval('3 + 4') 計算字符串 '3 + 4' 中的表達式并返回 7
chr(x)將整數 x 轉換為一個字符chr(97) 將整數 97 轉換為字符 'a'
ord(x)將一個字符 x 轉換為它對應的整數值ord('a') 將字符 'a' 轉換為整數 97
hex(x)將一個整數 x 轉換為一個十六進制的字符串hex(255) 將整數 255 轉換為十六進制字符串 '0xff'
oct(x)將一個整數 x 轉換為一個八進制的字符串oct(8) 將整數 8 轉換為八進制字符串 '0o10'
bin(x)將一個整數 x 轉換為一個二進制的字符串bin(10) 將整數 10 轉換為二進制字符串 '0b1010'

使用 int()

將其他數據類型轉換為整數。浮點數將被截斷,小數部分會被移除;字符串必須包含有效的整數表示:

a = 3.7
b = int(a)
print(b)  # 輸出 3c = "10"
d = int(c)
print(d)  # 輸出 10e = "a123"
f = int(e)
print(f)  # 報錯

使用 float()

將其他數據類型轉換為浮點數。整數將被轉換為對應的浮點數,字符串必須包含有效的浮點數表示:

a = 3
b = float(a)
print(b)  # 輸出 3.0c = "3.14"
d = float(c)
print(d)  # 輸出 3.14

使用 str()

將其他數據類型轉換為字符串。可以用于任何數據類型:

a = 10
b = str(a)
print(b)  # 輸出 "10"c = 3.14
d = str(c)
print(d)  # 輸出 "3.14"

使用 bool()

將其他數據類型轉換為布爾值。非零數值、非空字符串和非空數據結構(如列表、元組、字典等)都將被轉換為 True,零數值、空字符串和空數據結構將被轉換為 False

a = 0
print(bool(a))  # 輸出 Falseb = 1
print(bool(b))  # 輸出 Truec = ""
print(bool(c))  # 輸出 Falsed = "Hello"
print(bool(d))  # 輸出 True

使用 list()

將其他可迭代對象(如字符串、元組等)轉換為列表:

a = "hello"
b = list(a)
print(b)  # 輸出 ['h', 'e', 'l', 'l', 'o']c = (1, 2, 3)
d = list(c)
print(d)  # 輸出 [1, 2, 3]

使用 tuple()

將其他可迭代對象(如字符串、列表等)轉換為元組:

a = "hello"
b = tuple(a)
print(b)  # 輸出 ('h', 'e', 'l', 'l', 'o')c = [1, 2, 3]
d = tuple(c)
print(d)  # 輸出 (1, 2, 3)

使用 set()

將其他可迭代對象(如字符串、列表等)轉換為集合,集合中的元素是唯一的:

a = "hello"
b = set(a)
print(b)  # 輸出 {'h', 'e', 'l', 'o'}c = [1, 2, 2, 3]
d = set(c)
print(d)  # 輸出 {1, 2, 3}

使用 dict()

將其他可迭代對象(如鍵值對的列表)轉換為字典:

a = [('a', 1), ('b', 2)]
b = dict(a)
print(b)  # 輸出 {'a': 1, 'b': 2}c = (('x', 3), ('y', 4))
d = dict(c)
print(d)  # 輸出 {'x': 3, 'y': 4}

使用 frozenset()

將其他可迭代對象(如字符串、列表等)轉換為凍結集合,凍結集合是不可變的:

a = "hello"
b = frozenset(a)
print(b)  # 輸出 frozenset({'h', 'e', 'l', 'o'})c = [1, 2, 2, 3]
d = frozenset(c)
print(d)  # 輸出 frozenset({1, 2, 3})

使用 complex()

創建一個復數,實部和虛部都可以是整數或浮點數:

a = 1
b = 2
c = complex(a, b)
print(c)  # 輸出 (1+2j)d = complex(1.5, 2.5)
print(d)  # 輸出 (1.5+2.5j)

使用 repr()

將對象轉換為表達式字符串,通常用于調試和開發:

a = 123
b = repr(a)
print(b)  # 輸出 '123'c = [1, 2, 3]
d = repr(c)
print(d)  # 輸出 '[1, 2, 3]'

使用 eval()

計算字符串中的有效 Python 表達式,并返回一個對象:

a = '3 + 4'
b = eval(a)
print(b)  # 輸出 7c = '["a", "b", "c"]'
d = eval(c)
print(d)  # 輸出 ['a', 'b', 'c']

使用 chr()

將整數轉換為對應的字符:

a = 97
b = chr(a)
print(b)  # 輸出 'a'c = 65
d = chr(c)
print(d)  # 輸出 'A'

使用 ord()

將字符轉換為對應的整數值:

a = 'a'
b = ord(a)
print(b)  # 輸出 97c = 'A'
d = ord(c)
print(d)  # 輸出 65

使用 hex()

將整數轉換為十六進制字符串:

a = 255
b = hex(a)
print(b)  # 輸出 '0xff'c = 16
d = hex(c)
print(d)  # 輸出 '0x10'

使用 oct()

將整數轉換為八進制字符串:

a = 8
b = oct(a)
print(b)  # 輸出 '0o10'c = 64
d = oct(c)
print(d)  # 輸出 '0o100'

使用 bin()

將整數轉換為二進制字符串:

a = 10
b = bin(a)
print(b)  # 輸出 '0b1010'c = 255
d = bin(c)
print(d)  # 輸出 '0b11111111'

通過掌握這些數據類型轉換方法,您可以靈活地處理不同類型的數據,確保程序能夠正確地執行各種操作。在接下來的章節中,我們將探討如何進行基礎輸入和輸出操作,以進一步增強程序的交互性。


三、基本輸入輸出

在 Python 中,輸入和輸出是基本的操作。以下是一些常用的輸入輸出方法:

1. 輸入(input)

input() 函數用于獲取用戶的輸入,輸入的數據類型為字符串。可以通過在括號中添加提示信息來提示用戶輸入:

name = input("請輸入你的名字: ")
print("你好, " + name)

在這里插入圖片描述

在這個示例中,程序會等待用戶輸入名字,并輸出一條包含該名字的問候語。

2. 輸出(print)

print() 函數用于將數據輸出到控制臺。可以輸出多個值,并且可以使用不同的方式格式化輸出內容:

# 輸出單個值
print("Hello, World!")# 輸出多個值
print("你好", "世界")# 使用 f-string 格式化輸出
name = "Alice"
age = 30
print(f"名字: {name}, 年齡: {age}")# 使用 format() 方法格式化輸出
print("名字: {}, 年齡: {}".format(name, age))# 使用百分號格式化輸出
print("名字: %s, 年齡: %d" % (name, age))

3. 案例:輸入姓名、年齡、身高以及體重,計算BMI指數。

variable = input("請輸入你的名字:")
print("你好", variable)age = input("請輸入你的年齡:")
print("你今年", age, "歲了")height = float(input("請輸入你的身高(單位:米):"))
weight = float(input("請輸入你的體重(單位:公斤):"))bmi = weight / height ** 2
print("你的BMI指數為:", bmi)if bmi < 18.5:print("您的體重過輕 ~@_@~")
elif 18.5 <= bmi < 25:print("您的體重在正常范圍 ~@_@~")
elif 25 <= bmi < 28:print("您的體重過重 ~@_@~")
elif 28 <= bmi < 32:print("肥胖啦你! ~@_@~")
else:print("嚴重肥胖啦~~~ ~@_@~")

在這里插入圖片描述

4. 使用 pprint() 函數輸出

pprint 模塊的 pprint() 函數用于“漂亮打印”數據結構,使其輸出格式更易于閱讀,尤其是對于嵌套和復雜的數據結構(如字典和列表)。在處理復雜數據時,pprintprint 更適合用于調試和展示數據。

使用 pprint() 需要先導入 pprint 模塊:

from pprint import pprint# 示例數據結構
data = {'name': 'Alice','age': 30,'children': [{'name': 'Bob', 'age': 5},{'name': 'Charlie', 'age': 3}],'pets': {'dog': 'Fido', 'cat': 'Whiskers'}
}# 使用 print 輸出
print(data)# 使用 pprint 輸出
pprint(data)

輸出結果比較:

# 使用 print 輸出
{'name': 'Alice', 'age': 30, 'children': [{'name': 'Bob', 'age': 5}, {'name': 'Charlie', 'age': 3}], 'pets': {'dog': 'Fido', 'cat': 'Whiskers'}}# 使用 pprint 輸出
{'age': 30,'children': [{'age': 5, 'name': 'Bob'}, {'age': 3, 'name': 'Charlie'}],'name': 'Alice','pets': {'cat': 'Whiskers', 'dog': 'Fido'}}

從輸出結果可以看出,pprint() 會自動調整輸出格式,使其更清晰易讀,特別是當數據結構比較復雜時。

pprint() 還可以自定義輸出格式。以下是一些常用的參數:

  • indent: 指定每一級嵌套的縮進空格數,默認值為 1。
  • width: 指定輸出行的最大寬度,默認值為 80。
  • depth: 指定最大嵌套層級,超出層級的數據將以省略號表示。
  • compact: 如果為 True,則盡可能緊湊地打印數據結構。

示例:

pprint(data, indent=2, width=40, depth=2, compact=True)

打印結果:

{ 'age': 30,'children': [{...}, {...}],'name': 'Alice','pets': { 'cat': 'Whiskers','dog': 'Fido'}}

這將以更緊湊的方式打印數據結構,并且只顯示到第二層嵌套。


四、總結

在本文中,我們深入探討了 Python 的數據類型轉換和基本輸入輸出操作。通過這些知識,您可以靈活地在不同數據類型之間進行轉換,并實現用戶輸入和程序輸出的基本交互。

1. 數據類型轉換

了解數據類型轉換是編寫健壯 Python 程序的關鍵。通過隱式轉換和顯式轉換,您可以在不同數據類型之間進行轉換,確保數據在不同的操作和計算中保持一致性。我們介紹了常用的轉換方法,包括 int()float()str()bool() 等,以及如何將數據轉換為列表、元組、集合和字典等復雜數據結構。

2. 基本輸入輸出操作

輸入和輸出是程序與用戶交互的基礎。我們討論了如何使用 input() 函數獲取用戶輸入,以及如何使用 print() 函數輸出信息。通過不同的格式化方法,如 f-string、format() 方法和百分號格式化,您可以靈活地輸出各種格式的字符串。此外,使用 pprint() 函數可以更清晰地打印復雜數據結構,有助于調試和展示數據。

通過這些基本知識,您可以編寫功能豐富、交互性強的 Python 程序。繼續練習這些操作,并在實際項目中應用它們,將有助于您進一步掌握 Python 編程技能。

在這里插入圖片描述


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

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

相關文章

《從零開始學習大語言模型》專欄來啦!

歡迎來到我的專欄LLM-from-scratch&#xff0c;這是一個致力于從零開始學習和掌握大語言模型的知識寶庫。無論你是剛入門的新手&#xff0c;還是想要深入了解的高級用戶&#xff0c;這里都有適合你的內容。以下是專欄的精彩章節&#xff1a; LLM-from-scratch-1.圖解tokenizat…

DM表級觸發器

可以理解為行變動級 觸發體中寫邏輯 這是表修改時調用存儲過程 感謝大哥分享: https://blog.csdn.net/WuLex/article/details/83181449 感謝大哥分享: https://blog.csdn.net/ChennyWJS/article/details/131913198

湘潭大學軟件工程信息與網絡安全復習筆記最后一篇

文章目錄 復習建議分數占比流密碼A5/1RC4 分組密碼DESAES 復習建議 現在筆者復習算是收尾了&#xff0c;現在也是考前的最后一天了&#xff0c;走了不少彎路&#xff0c;但是可能也是必不可少的&#xff0c;復習建議是硬著頭皮把這份文件看一遍&#xff0c;不理解的地方找英文…

如何使用sr2t將你的安全掃描報告轉換為表格格式

關于sr2t sr2t是一款針對安全掃描報告的格式轉換工具&#xff0c;全稱為“Scanning reports to tabular”&#xff0c;該工具可以獲取掃描工具的輸出文件&#xff0c;并將文件數據轉換為表格格式&#xff0c;例如CSV、XLSX或文本表格等&#xff0c;能夠為廣大研究人員提供一個…

軟件接口自動化測試

使用軟件工具工裝治具測試 在當今快速迭代的軟件開發環境中&#xff0c;確保軟件質量與高效交付成為了每個開發團隊的首要任務。軟件接口作為系統之間交互的關鍵橋梁&#xff0c;其穩定性和可靠性直接影響到整個應用生態的性能。因此&#xff0c;軟件接口自動化測試成為了提升…

在 Python 中將字典內容保存到 Excel 文件

目錄&#xff1a; 使用 Pandas 轉 Excel使用 Openpyxl 轉 Excel使用 xlsxwriter 轉 Excel使用 csv 轉 Excel Python 中的字典是一個數據集合&#xff0c;其中每個值對應一個鍵。它們是無序的、可變的&#xff0c;并且對字典中存儲的值和鍵的數據類型沒有限制。Python 程序員經常…

【SpringCloud】Ribbon源碼解析

ribbon是一個負載均衡組件&#xff0c;它可以將請求分散到多個服務提供者實例中&#xff0c;提高系統的性能和可用性。本章分析ribbon是如何實現負載均衡的 1、LoadBalanced 消費者在引入ribbon組件后&#xff0c;給http客戶端添加LoadBalanced注解就能啟用負載均衡功能。Load…

壓縮包怎么解壓,解壓壓縮包不損壞文件

常見格式&#xff1a; ZIP&#xff1a;最常見的壓縮文件格式之一&#xff0c;支持跨平臺。RAR&#xff1a;另一種常見的壓縮文件格式&#xff0c;通常壓縮率比ZIP高&#xff0c;但不如ZIP普及。7Z&#xff1a;來自7-Zip的壓縮格式&#xff0c;支持更高的壓縮率和一些高級特性。…

手機照片數據恢復,2個技巧解決你的疑惑與困擾

手機照片是我們日常生活中記錄美好瞬間的重要工具&#xff0c;然而&#xff0c;當照片存儲量越來越大&#xff0c;以至于手機內存不足時&#xff0c;我們就不得不放棄一部分。照片數據恢復是否還有希望呢&#xff1f;當然啦&#xff01;本文將為你提供2個實用的技巧&#xff0c…

虛擬機配置與windows之間文件夾共享samba服務:

虛擬機配置與windows之間文件夾共享samba服務: #輸入安裝命令&#xff1a; 第一步: 下載samba cd /etc/ sudo apt-get install samba第二步: 配置用戶 sudo smbpasswd -a 虛擬機用戶名第三步: 進入配置文件配置共享文件 sudo vim /etc/samba/smb.conf末尾輸入以下內容: [s…

經典遞歸題 擴充序列 兩種做法

一道經典遞歸題&#xff0c;兩種做法&#xff0c;常規遞歸做法和模擬數學規律解法 3695. 擴充序列 - AcWing題庫 擴充序列 樣例解釋 對于樣例 1&#xff0c;經過 2 次擴充&#xff0c;得到序列 [1,2,1,3,1,2,1]其第 2 個元素為 2。 對于樣例 2&#xff0c;經過 3次擴充&…

針對airtest的poco標簽正則匹配

1.text屬性方式定位 poco(text“中古屋”) 換成正則表達式定位 poco(textMatches“正則表達式”) poco(textMatches".*中古屋") 2.name屬性方式定位 poco(name‘com.addcn.android.house591:id/grid_item_text’) 換成正則表達式定位 poco(nameMatches“正則表…

Linux下如何設置可執行文件和庫文件的環境變量?

在Linux系統中&#xff0c;可執行文件和庫文件的查找路徑是由環境變量控制的&#xff0c;其中最重要的是PATH環境變量用于可執行文件&#xff0c;而動態庫的查找路徑則由LD_LIBRARY_PATH環境變量決定。下面分別介紹這兩個方面&#xff1a; 可執行文件的搜索路徑&#xff08;PA…

對不起,AI大模型不是風口

“我們正處在全新起點&#xff0c;這是一個以大模型為核心的人工智能新時代&#xff0c;大模型改變了人工智能&#xff0c;大模型即將改變世界。”——5月26日&#xff0c;百度創始人、董事長兼CEO李彥宏先生在2023中關村論壇發表了《大模型改變世界》演講。 李彥宏指出&#…

【SpringCloud】Hystrix源碼解析

hystrix是一個微服務容錯組件&#xff0c;提供了資源隔離、服務降級、服務熔斷的功能。這一章重點分析hystrix的實現原理 1、服務降級 CAP原則是分布式系統的一個理論基礎&#xff0c;它的三個關鍵屬性分別是一致性、可用性和容錯性。當服務實例所在服務器承受過大的壓力或者受…

c++【入門】挖胡蘿卜

限制 時間限制 : 1 秒 內存限制 : 128 MB 題目 小兔朱迪挖了x個胡蘿卜&#xff0c;狐貍尼克挖到胡蘿卜數量是小兔挖到的3倍&#xff0c;小羊肖恩挖到胡蘿卜的數量比狐貍尼克少8個&#xff1b; 請你編程計算一下狐貍尼克和小羊肖恩分別挖了幾個胡蘿卜&#xff0c;以及平均每…

前端工程化09-webpack靜態的模塊化打包工具(未完結)

9.1、開發模式的進化歷史 webpacks是一個非常非常的強大的一個工具&#xff0c;相應的這個東西的學習也是有一定的難度的&#xff0c;里邊的東西非常的多&#xff0c;里面涉及到的 概念的話也是非常非常的多的。 這個東西既然非常重要&#xff0c;那么在我們前端到底處于怎樣…

HCIA4.26-5.10

OSPF ——開放式最短路徑優先協議 無類別鏈路狀態IGP動態路由協議 距離矢量協議 運行距離矢量協議的路由器會周期性的泛洪自己的路由表&#xff0c;通過路由之間的交互&#xff0c;每臺路由器都從相鄰的路由器學習到路由條目&#xff0c;隨后加載進自己的路由表中。對于網絡…

GD32 開發筆記

0x01 GPIO時鐘使能的坑 使用GD32的GPIO引腳來控制 74HC595 &#xff0c;發現引腳一直無法控制&#xff0c;始終輸出3.3v&#xff0c;初始化環節應該是出了問題。用通俗的話來說&#xff0c;就是點燈點不亮 排查了MCU、光耦隔離芯片、被強行上拉等問題&#xff0c;最后發現是G…

Python代碼分析和修復工具庫之coala使用詳解

概要 代碼質量在軟件開發中至關重要,保持代碼的可讀性、一致性和易維護性是每個開發者的目標。coala 是一個開源的代碼分析和修復工具,旨在幫助開發者自動化代碼質量檢查,支持多種編程語言,包括 Python、C++、JavaScript 等。通過使用 coala,開發者可以方便地集成代碼檢查…