Python數學函數、字符串和對象

學習目標:

  • 使用math模塊中的函數解決數學問題
  • 表示和處理字符串和字符
  • 使用ASCII和Unicode對字符編碼
  • 使用ord函數獲取一個字符的數值編碼以及使用chr函數將一個數值編碼轉換成一個字符
  • 使用轉義序列表示特殊字符
  • 調用帶參數end的print函數
  • 使用str函數將數字轉換成字符串
  • 使用運算符+來連接字符串
  • 從鍵盤讀取字符串
  • 介紹對象和方法
  • 使用format函數格式化數字和字符串
  • 繪制各種不同的圖形
  • 繪制帶顏色和字體的圖形

一、常見的Python函數

關鍵點:Python提供了許多有用的用于解決常見程序設計任務的函數。

????????函數是完成一個特殊任務的一組語句。Python 語言和其他程序設計語言一樣,都提供了一個函數庫。前面已經介紹過eval、input、 print 和int函數。這些都是內置函數并且在Python解釋器里均可用。所以使用這些函數你不用導入任何模塊。除此之外,你還可以使用abs、max、min、pow和round等內置函數,如表所示。

我們常常為解決數學問題創建一些程序。Python的math模塊提供了許多數學函數:

兩個數學常量pi和e也定義在math模塊中。我們可以通過使用math.pimath.e來訪問它們。

????????你可以使用數學函數解決許多計算問題。例如:已知三角形的三條邊,你可以使用下面的公式計算出三角形的三個角。

二、字符串和字符

關鍵點: 字符串是一連串的字符。 Python處理字符和字符串的方式是一樣的 。

在Python里,你除了可以處理數值,還可以處理字符串。一個字符串就是一串包括文本和數字的字符。字符串必須被括在一對單引號(')或者雙引號( " )里。Python沒有字符數據類型。一個字符的字符串代表一個字符。例如:

letter = 'A' # Same as Tetter = "A"
numChar = '4' # Same as numChar = "4"
message = "Good morning" # Same as message = 'Good morning'

????????第一條語句將只有字符A的字符串賦值給變量letter。第二條語句將只有數字字符4的字符串賦值給變量number。第三條語句將字符串“goodmorning”賦值給變量message。

2.1、?ASCII 碼

????????計算機在內部是使用二進制數的。在計算機里,一個字符被存儲為一連串的0和1。把一個字符映射成它對應的二進制被稱為字符編碼。對字符編碼的方式有很多。編碼表定義編碼字符的方式。流行的編碼標準是ASCII (美國信息交換標準代碼),它是一個比特的編碼表,足以表示所有的大小寫字母、數字、標點符號以及控制字符。ASCII 碼使用0到127來表示字符。

2.2、統一碼

????????Python也支持統一碼。統一碼是一種編碼表,它能表示國際字符。ASCII 碼表是統一碼的子集。統一碼由統一碼協會( Unicode Consortium)建立,支持世界上各種語言所寫的文本進行交換、處理和展示。一個統一碼以“\u” 開始,后面緊跟四個十六進制數字,它們從“\u0000到\uFFFF"。例如,“welcome”被翻譯成中文后就是兩個字符:“歡”和“迎”。這兩個字符的統一碼表示是“\u6B22\u8FCE"。

2.3、函數ord和chr

????????Python提供ord ( ch)函數來返回字符ch的ASCII碼,用chr ( code)函數返回code所代表的字符。例如:

ch = 'a'
ord(ch)  # 97
chr(98)  # b

????????a的ASCII碼值是97,比A (65)的編碼值要大。小寫字母的ASCII碼是從a開始,然后是b、c依次類推直到z的連續整數。大寫字母也是一樣的。任何小寫字母的ASCII碼與它對應的大寫字母的ASCII碼的差值都一樣:32。這是一個很有用的處理字符的特性。

2.4、轉義序列

????????Python 使用一種特殊的符號來表示特殊的字符,如表3-3所示。這種由反斜杠“\”和其后緊接著的字母或數字組合構成的特殊符號被稱為轉義序列。

?2.5、不換行打印

當使用print函數時,它會自動打印一個換行符,這會導致輸出提前進入下一行。如果你并不想在使用print函數后換行,可以使用下面的語法在調用print函數時傳遞一個特殊的參數end=“anyendingstring”:

print(item, end = "anyendingstring")

例如,下面的代碼:

print("AAA", end = ' ')
print("BBB", end = '')
print("CCC",end = '***')
print("DDD", end = '***')

顯示:
AAA BBBCCC***DDD***

2.6、函數str

????????str函數可以將一個數字轉換成一個字符串。

s = str(3.4)
s = str(3)

2.7、字符串連接操作

你可以使用運算符+來對兩個數字做加法。你也可以使用+運算符來連接兩個字符串。

msg = "Hello" + "Python"

2.8、從控制臺讀取字符串

為了從控制臺讀取一個字符串,可以使用input函數。例如:下面的代碼從鍵盤讀取了三個字符串:

s1 = input("Enter a string: ")
s2 = input("Enter a string: ")
s3 = input("Enter a string: ")print("s1?is" + s1)
print("s2 is" + s2)
print("s3 is" + s3)

三、對象和方法簡介

關鍵點:在Python中,所有的數據(包括數字和字符串)實際都是對象。

????????在Python中,一個數字是一個對象,一個字符串是一個對象,每個數據都是對象。同一類型的對象都有相同的類型。你可以使用id函數和type函數來獲取關于對象的一些信息。

n = 3
id(n)
type(n)輸出:
2596503748912
<class 'int'>

????????當執行程序的時候,Python 會自動為對象的id賦一個獨特的整數。在程序的執行過程中,對象的id不會改變。然而,每當執行程序時,Python 都可能會賦一個不同的id。Python 按照對象的值決定對象的類型。顯示數字對象n的id,輸出的第1行顯示的是Python已經被賦值給對象的id,而第2行顯示它的類型。

????????在Python中,一個對象的類型由類決定。例如:字符串的類是str ,整數的類是int ,浮點數的類是float。術語“class”來自面向對象程序設計。在Python中,類(class) 和類型(type)是一樣的意思。

注意:?id和type函數在程序設計里很少用到,但是它們是學習更多有關對象的好工具。
Python中的變量實際上是一個對象的引用。

圖3-2顯示前面的代碼中變量和對象之間的關系。

????????第1行的語句“n=3”是將3賦值給了n,實際上是將3賦值給了一個int對象,這個對象是由變量n引用的。

注意:對于n=3,我們可以說n是一個整型變量,其值為3。嚴格說來,n是一個引用了int對象的變量,而這個int對象的值為3。簡單講,說n是一個值為3的整型變量也可以。

????????你可以在一個對象上執行操作。操作是用函數定義的。Python 中對象所用的函數被稱為方法。方法只能從一個特定的對象里調用。例如:字符串類型里有像lower()和upper()這樣的方法,它們返回大寫字母或小寫字母寫成的新字符串。

????????注意:如果你在Eclipse 上使用Python, Eclipse會自動在input函數輸入的字符串后追加\r。因此,你應該用strip() 方法移除字符\r,如:

s = input("Enter a string").strip()

四、格式化數字和字符串

關鍵點:你可以使用format函數返回格式化的字符串。

????????調用這個函數的語法是:

format(item,format-specifier)

????????上面的item是數字或者字符串,而格式說明符( format-specifier) 指定條目item的格式。此函數返回一個字符串。

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

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

相關文章

Python的getattr方法

getattr是Python中的內置函數&#xff0c;用于獲取一個對象的屬性值。這個函數是動態獲取屬性的一種方式&#xff0c;特別適用于你事先不知道要獲取哪個屬性&#xff0c;或者屬性名是在運行時確定的情況。 使用方法&#xff1a; getattr(object, name, [default])object: 要從…

亞馬遜feedback和review有什么區別

在亞馬遜上&#xff0c;"Feedback"&#xff08;反饋&#xff09;和"Review"&#xff08;評論&#xff09;是兩個不同的概念&#xff0c;它們在購物體驗中起著不同的作用。 Feedback&#xff08;反饋&#xff09;&#xff1a; 亞馬遜的"Feedback"…

Ubuntu 18.04.6 Android Studio Giraffe adb logcat 無法使用

在 Ubuntu 18.04.6 上 在鏈接上設備以后&#xff0c;發現可以用 Android Studio 安裝應用 但無法用 Android Studio 看 logcat 手動從命令行停止&#xff0c;啟動 adb 會報錯如下: daemon not running. starting it now on port 5037 ADB server didnt ACK fail…

PHP sm4國密加密解密文件

<?php // 打開要加密的 PDF 文件 $sourceFilePath path/to/source.pdf; $encryptedFilePath path/to/encrypted.pdf; $decryptedFilePath path/to/decrypted.pdf;// 生成一個 AES 密鑰&#xff08;256 位&#xff09; $key random_bytes(32);// 選擇一個加密模式&#…

STM32 cubemx CAN

接收用到的結構體如下&#xff1a;CAN概念&#xff1a; 全稱Controller Area Network&#xff0c;是一種半雙工&#xff0c;異步通訊。 物理層&#xff1a; 閉環&#xff1a;允許總線最長40m&#xff0c;最高速1Mbps&#xff0c;規定總線兩端各有一個120Ω電阻&#xff0c;閉環…

css3-flex布局:基礎使用 / Flexbox布局

一、理解flex 二、理解Flex布局&#xff08;又稱Flexbox布局&#xff09; Flex布局&#xff08;又稱Flexbox布局&#xff09;是一種基于Web的CSS3布局模式&#xff0c;其目的是為了更加靈活和自適應地布置各種各樣的網頁元素。Flex布局通過將一個父容器分割為一個或多個彈性項…

圖解WebSocket

&#x1f44f;作者簡介&#xff1a;大家好&#xff0c;我是愛寫博客的嗯哼&#xff0c;愛好Java的小菜鳥 &#x1f525;如果感覺博主的文章還不錯的話&#xff0c;請&#x1f44d;三連支持&#x1f44d;一下博主哦 &#x1f4dd;個人博客&#xff1a;敬請期待 文章目錄 前言一、…

Qt 加載 libjpeg 庫出現“長跳轉已經運行”錯誤

在我以為升級到 Qt5.15.9 后&#xff0c;運行沒有什么問題時&#xff0c;問題就來了 在加載 jpeg 格式的圖片時&#xff0c;出現了“長跳轉已經運行”的錯誤 這個錯誤一般是由 setjmp/longjmp 函數觸發的&#xff0c;出現的可能的原因有以下幾種&#xff08;聽聽 chatgpt 的回…

常用的免費敏捷工具

? Scrum中非常強調公開、透明、直接有效的溝通&#xff0c;這也是“可視化的管理工具”在敏捷開發中如此重要的原因之一。通過“可視化的管理工具”讓所有人直觀的看到需求&#xff0c;故事&#xff0c;任務之間的流轉狀態&#xff0c;可以使團隊成員更加快速適應敏捷開發流程…

VMware Workstation 如何啟用復制粘貼

產品&#xff1a;VMware Workstation 16 Pro 版本&#xff1a;16.1.1 build-17801498 我們剛安裝好的 VMware Workstation 會發現無法復制粘貼文件到虛擬機中&#xff0c;如下為解決方案&#xff1a; 1.點擊 虛擬機&#xff0c;點擊 安裝 VMware Tools(T)...。 2.虛擬機下面會…

詳細安裝配置django

安裝配置使用Django。 1&#xff0c;下載安裝 django pip install django 2.創建設置項目 先進入要放置項目的文件夾下 2.1&#xff0c; 創建項目 django-admin startproject Api_project 2.2&#xff0c; 創建app命令 cd Api_project dir看一下是否有 manage.py 文件…

ASPICE流程發布和維護

ASPICE流程發布和維護是指在軟件開發完成后&#xff0c;將軟件發布給客戶&#xff0c;并進行維護和支持。這一過程包括以下步驟&#xff1a; 軟件發布&#xff1a;將符合ASPICE標準的軟件發布給客戶&#xff0c;確保軟件可以正常運行并滿足客戶需求。 用戶培訓&#xff1a;對客…

23牛客多校9 I Non-Puzzle: Segment Pair

也許更好的閱讀體驗 D e s c r i p t i o n \mathcal{Description} Description 給 n n n對區間&#xff0c;要求每對區間恰好選一個使得選出來的 n n n個區間有交集&#xff0c;問有多少方案數 1 ≤ n , l i , r i ≤ 5 1 0 5 1\le n, l_i,r_i\le 510^5 1≤n,li?,ri?≤510…

2023-08-11 LeetCode每日一題(矩陣對角線元素的和)

2023-08-11每日一題 一、題目編號 1572. 矩陣對角線元素的和二、題目鏈接 點擊跳轉到題目位置 三、題目描述 給你一個正方形矩陣 mat&#xff0c;請你返回矩陣對角線元素的和。 請你返回在矩陣主對角線上的元素和副對角線上且不在主對角線上元素的和。 示例 1&#xff1…

企業計算機服務器中了Devos勒索病毒怎么辦,勒索病毒解密

社會在發展&#xff0c;科技在進步&#xff0c;企業的生產也得到了很大改善&#xff0c;但是隨著網絡技術的不斷發展&#xff0c;越來越多的企業遭到的網絡安全威脅開始增多&#xff0c;其中較為明顯的就是勒索病毒攻擊。預防勒索病毒攻擊成為日常生活中不可或缺的一部分工作。…

8,四個類型轉換const_cast、reinterpret_cast、dynamic_cast、static_cast

類型轉換const_cast、reinterpret_cast、dynamic_cast、static_cast const_castreinterpret_castdynamic_caststatic_cast const_cast 被const修飾的函數可以被訪問&#xff0c;但是不能被修改成員變量 const_cast可以去掉const #include <iostream> using namespace s…

SyntaxError: Cannot use import statement outside a module

node環境運行報錯&#xff1a; 解決步驟&#xff1a; 1. npm init -y 2. 在 package.json 文件中加入一條&#xff1a;"type": "module", 3. 保存后再執行即可 附&#xff1a;最好是不要在node用import&#xff0c;否則需要上次配置 建議1&#xff1a;用re…

el-table實現靜態和動態合并單元格 以及內容顯示的問題

實現效果圖 <el-tablev-loading"loading":data"tableData"style"width: 100%":row-class-name"tableRowClassName"size"small"><el-table-column fixed label"序號" width"50"><el-tab…

Detecting Twenty-thousand Classes using Image-level Supervision

Detecting Twenty-thousand Classes using Image-level Supervision 摘要背景方法PreliminariesDetic:具有圖像類別的檢測器loss技術細節擴展Grad-CAMGrad-CAM原理 總結 摘要 摘要 由于檢測數據集的規模較小&#xff0c;目前的物體檢測器在詞匯量方面受到限制。而圖像分類器的數…

LeetCode_03Java_1572. 矩陣對角線元素的和

給你一個正方形矩陣 mat&#xff0c;請你返回矩陣對角線元素的和。 請你返回在矩陣主對角線上的元素和副對角線上且不在主對角線上元素的和。 輸入&#xff1a;mat [[1,2,3],[4,5,6],[7,8,9]] 輸出&#xff1a;25 解釋&#xff1a;對角線的和為&#xff1a;1 5 9 3 7 2…