Python學習筆記(二)(字符串)

文章目錄

  • 編寫簡單的程序
    • 一、標識符 (Identifiers)及關鍵字
      • 命名規則:
      • 命名慣例:
      • 關鍵字
    • 二、變量與賦值 (Variables & Assignment)
      • 變量定義:
      • 多重賦值:
      • 變量交換:(很方便喲)
    • 三、輸入與輸出 (Input & Output)
      • 輸入:
      • 輸出:
    • 四、數值 (Numbers)
      • 數值類型:
      • 數值運算:
    • 五、字符串 (Strings)
      • 字符串定義:
      • 字符串操作:
      • 字符串格式化:
      • 常用字符串函數
        • 1. 基本操作函數
      • 2. 判斷類函數
      • 3. 分割和連接
      • 4. 格式化函數
    • 字符串應用實例
      • 1. 數據清洗
      • 2. 密碼強度檢查
      • 3. 文本分析
      • 4. 字符串加密
      • 5. URL處理
    • 高級字符串操作
      • 1. 正則表達式 (re模塊)
      • 2. 字符串模板 (string.Template)
      • 3. 字符串對齊
    • 類型轉換
    • 資源庫

編寫簡單的程序

一、標識符 (Identifiers)及關鍵字

標識符是用于標識變量、函數、類、模塊等對象的名字。

命名規則:

  1. 由字母、數字和下劃線 _ 組成
  2. 不能以數字開頭
  3. 區分大小寫
  4. 不能是 Python 關鍵字(如 if, for, while 等)

命名慣例:

  • 變量名:小寫字母,單詞間用下劃線 _ 連接(如 student_name
  • 常量名:全大寫字母(如 MAX_VALUE
  • 類名:首字母大寫的駝峰式(如 StudentInfo
  • 函數名:小寫字母,單詞間用下劃線(如 calculate_average

關鍵字

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
注意:
“False”,“None”,“True”首字母都需要大寫

Python 關鍵字詳解

二、變量與賦值 (Variables & Assignment)

變量定義:

Python中變量在訪問前,必須先綁定某個對象,即賦值,否則會報錯。

x = 10              # 整數
name = "Alice"      # 字符串
is_valid = True     # 布爾值

多重賦值:

a, b, c = 1, 2, 3       # 同時賦值多個變量
x = y = z = 0           # 多個變量賦相同值

變量交換:(很方便喲)

a, b = b, a     # 交換兩個變量的值

注意:

  • 使用換行符分隔,一般一行一條語句
  • 從第一列開始,前面不能有空格,否則會出現語法錯誤
  • “#”后為注釋語句
a = 100
b = "21"
a + bTypeError: unsupported operand type(s) for +: 'int' and 'str'
  • Python是一種強類型語言,只支持該類型允許的運算操作
  • a 指向整數類型對象,b指向字符串類型對象,整數類型數據和字符串類型數據不能接相加,即字符串類型數據不能自動轉換為整數類型數據。

三、輸入與輸出 (Input & Output)

輸入:

name = input("請輸入你的名字:")        # 獲取字符串輸入
age = int(input("請輸入你的年齡:"))    # 獲取整數輸入

輸出:

print("Hello World")                    # 基本輸出
print("Name:", name, "Age:", age)       # 多個參數
print(f"Name: {name}, Age: {age}")      # f-string (Python 3.6+)

注意:

  • input()函數語句只能得到文本(字符串)
  • eval()函數語句可以得到數字(輸入“ABC”等無法轉化為數字進行運算,會報錯……)
  • Python中存在強制轉換 int(),float()
  • sep:用來設定以什么字符間隔輸出對象,默認為空格
  • end:用來設定以什么字符作為輸出對象的結尾,默認換行符“\n”,也可以是其他字符

Python中的eval()函數詳解

print('2025','5','5',sep='/')
print("the answer is ",end="") #使用end="",輸出字符串不會換行
print(3+4)

運行結果:

2025/5/5
the answer is 7

四、數值 (Numbers)

數值類型:

  1. 整數 (int)10, -5, 0
  2. 浮點數 (float)3.14, -0.001, 2.0
  3. 復數 (complex)1+2j

數值運算:

# 基本運算
a = 10 + 3    # 加
b = 10 - 3    # 減
c = 10 * 3    # 乘
d = 10 / 3    # 除(返回浮點數)
e = 10 // 3   # 整除
f = 10 % 3    # 取余
g = 10 ** 3   # 冪運算# 增強賦值
x += 1        # 等價于 x = x + 1

Python中的數值運算函數及math庫詳解

五、字符串 (Strings)

字符串定義:

s1 = '單引號字符串'
s2 = "雙引號字符串"
s3 = """多行
字符串"""

字符串操作:

# 連接
full_name = first_name + " " + last_name# 重復
line = "-" * 20# 索引
first_char = s[0]        # 第一個字符
last_char = s[-1]        # 最后一個字符# 切片
sub = s[2:5]            # 第3到第5個字符
every_second = s[::2]   # 每隔一個字符# 常用方法
s.upper()       # 轉為大寫
s.lower()       # 轉為小寫
s.strip()       # 去除兩端空白
s.split(",")    # 按分隔符分割
s.replace("a", "b")  # 替換字符

字符串格式化:

# 傳統方式
"Name: %s, Age: %d" % ("Alice", 20)# str.format()
"Name: {}, Age: {}".format("Alice", 20)# f-string (Python 3.6+)
f"Name: {name}, Age: {age}"

常用字符串函數

1. 基本操作函數
# 長度計算
s = "Hello"
len(s)  # 返回5# 大小寫轉換
s.upper()  # "HELLO"
s.lower()  # "hello"
s.capitalize()  # "Hello" 將字符串的首字母大寫
s.title()  # "Hello" (對于多單詞字符串會每個單詞首字母大寫)# 查找和替換
s.find('e')  # 1 (返回首次出現的索引,找不到返回-1)
s.rfind('l') # 3 返回該字符串在字符串s中最后的位置,不存在返回 -1 
s.index('e')  # 1 (類似find 但找不到會拋出異常:substring not found)
s.rindex('i') # 3 返回該字符串在字符串s中最后的位置
s.count('l') # 2 返回一個字符串在另一個字符串中出現的次數,不存在則結果為 0
s.replace('l', 'L')  # "HeLLo"# 去除空白字符 (不修改原字符串)
"  hello  ".strip()  # "hello" 移除字符串 開頭,結尾 的指定字符。默認移除空白字符(包括空格、制表符 \t、換行符 \n 等)。
"  hello  ".lstrip()  # "hello  "僅移除字符串 開頭 的指定字符。
"  hello  ".rstrip()  # "  hello"僅移除字符串 結尾 的指定字符。

補充鏈接:
Python中的strip()
Python中字符串分隔與連接函數

2. 判斷類函數

s.isalpha()  # 是否全是字母
s.isdigit()  # 是否全是數字
s.isalnum()  # 是否字母或數字
s.isspace()  # 是否全是空白字符
s.startswith('He')  # True
s.endswith('lo')  # True

3. 分割和連接

# 分割
"a,b,c".split(',')  # ['a', 'b', 'c']
"a b c".split()  # ['a', 'b', 'c'] (默認按空白字符分割)
"a\nb\nc".splitlines()  # ['a', 'b', 'c']# 連接
'-'.join(['a', 'b', 'c'])  # "a-b-c"

4. 格式化函數

# 舊式格式化
"Hello, %s!" % "world"  # "Hello, world!"# str.format()
"Hello, {}!".format("world")  # "Hello, world!"# f-string (Python 3.6+)
name = "world"
f"Hello, {name}!"  # "Hello, world!"

字符串應用實例

1. 數據清洗

# 清理用戶輸入
user_input = "  Some User Input  "
cleaned = user_input.strip().lower()
print(cleaned)  # "some user input"

2. 密碼強度檢查

def check_password(password):if len(password) < 8:return "密碼太短"if not any(c.isupper() for c in password):return "需要至少一個大寫字母"if not any(c.islower() for c in password):return "需要至少一個小寫字母"if not any(c.isdigit() for c in password):return "需要至少一個數字"return "密碼強度足夠"

3. 文本分析

text = "Python is an amazing programming language. Python is versatile."# 統計單詞出現次數
words = text.lower().split()
word_count = {}
for word in words:word = word.strip('.,!?')  # 去除標點word_count[word] = word_count.get(word, 0) + 1print(word_count)  # {'python': 2, 'is': 2, 'an': 1, ...}

4. 字符串加密

# 簡單的凱撒密碼
def caesar_cipher(text, shift):result = ""for char in text:if char.isupper():result += chr((ord(char) + shift - 65) % 26 + 65)elif char.islower():result += chr((ord(char) + shift - 97) % 26 + 97)else:result += charreturn resultencrypted = caesar_cipher("Hello, World!", 3)
print(encrypted)  # "Khoor, Zruog!"

5. URL處理

# 解析查詢參數
url = "https://example.com/search?q=python&page=2"def parse_query(url):query = url.split('?', 1)[1]params = query.split('&')return {p.split('=')[0]: p.split('=')[1] for p in params}print(parse_query(url))  # {'q': 'python', 'page': '2'}

高級字符串操作

1. 正則表達式 (re模塊)

import re# 驗證電子郵件格式
def is_valid_email(email):pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'return re.match(pattern, email) is not Noneprint(is_valid_email("test@example.com"))  # True

2. 字符串模板 (string.Template)

from string import Templatet = Template('Hello, $name!')
print(t.substitute(name='World'))  # "Hello, World!"

3. 字符串對齊

s = "Python"
s.ljust(10)  # 'Python    '
s.rjust(10)  # '    Python'
s.center(10) # '  Python  '

類型轉換

Python 類型轉換詳解

資源庫

Python Turtle 入門繪圖庫
🐳 🐋 🐬

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

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

相關文章

Hydra Columnar:一個開源的PostgreSQL列式存儲引擎

Hydra Columnar 是一個 PostgreSQL 列式存儲插件&#xff0c;專為分析型&#xff08;OLAP&#xff09;工作負載設計&#xff0c;旨在提升大規模分析查詢和批量更新的效率。 Hydra Columnar 以擴展插件的方式提供&#xff0c;主要特點包括&#xff1a; 采用列式存儲&#xff0c…

es的告警信息

Elasticsearch&#xff08;ES&#xff09;是一個開源的分布式搜索和分析引擎&#xff0c;在運行過程中可能會產生多種告警信息&#xff0c;以提示用戶系統中存在的潛在問題或異常情況。以下是一些常見的 ES 告警信息及其含義和處理方法&#xff1a; 集群健康狀態告警 信息示例…

健康與好身體筆記

文章目錄 保證睡眠飯后百步走&#xff0c;活到九十九補充鈣質一副好腸胃肚子咕咕叫 健康和工作的取舍 以前對健康沒概念&#xff0c;但是隨著年齡增長&#xff0c;健康問題凸顯出來。 持續維護該文檔&#xff0c;健康是個永恒的話題。 保證睡眠 一是心態要好&#xff0c;沾枕…

vue實現在線進制轉換

vue實現在線進制轉換 主要功能包括&#xff1a; 1.支持2-36進制之間的轉換。 2.支持整數和浮點數的轉換。 3.輸入驗證&#xff08;雖然可能存在不嚴格的情況&#xff09;。 4.錯誤提示。 5.結果展示&#xff0c;包括大寫字母。 6.用戶友好的界面&#xff0c;包括下拉菜單、輸…

智體知識庫:poplang編程語言是什么?

問&#xff1a;poplang語言是什么 Poplang 語言簡介 Poplang&#xff08;OPCode-Oriented Programming Language&#xff09;是一種面向操作碼&#xff08;Opcode&#xff09;的輕量級編程語言&#xff0c;主要用于智體&#xff08;Agent&#xff09;系統中的自動化任務處理、…

二分查找5:852. 山脈數組的峰頂索引

鏈接&#xff1a;852. 山脈數組的峰頂索引 - 力扣&#xff08;LeetCode&#xff09; 題解&#xff1a; 事實證明&#xff0c;二分查找不局限于有序數組&#xff0c;非有序的數組也同樣適用 二分查找主要思想在于二段性&#xff0c;即將數組分為兩段。本體就可以將數組分為ar…

下列軟件包有未滿足的依賴關系: python3-catkin-pkg : 沖突: catkin 但是 0.8.10-

下列軟件包有未滿足的依賴關系: python3-catkin-pkg : 沖突: catkin 但是 0.8.10- 解決&#xff1a; 1. 確認當前的包狀態 首先&#xff0c;運行以下命令來查看當前安裝的catkin和python3-catkin-pkg版本&#xff0c;以及它們之間的依賴關系&#xff1a; dpkg -l | grep ca…

深度學習:AI 大模型時代的智能引擎

當 Deepspeek 以逼真到難辨真假的語音合成和視頻生成技術橫空出世&#xff0c;瞬間引發了全球對 AI 倫理與技術邊界的激烈討論。從偽造名人演講、制造虛假新聞&#xff0c;到影視行業的特效革新&#xff0c;這項技術以驚人的速度滲透進大眾視野。但在 Deepspeek 強大功能的背后…

醫學分割新標桿!雙路徑PGM-UNet:CNN+Mamba實現病灶毫厘級捕捉

一、引言&#xff1a;醫學圖像分割的挑戰與機遇 醫學圖像分割是輔助疾病診斷和治療規劃的關鍵技術&#xff0c;但傳統方法常受限于復雜病理特征和微小結構。現有深度學習模型&#xff08;如CNN和Transformer&#xff09;雖各有優勢&#xff0c;但CNN難以建模長距離依賴&…

CV - 目標檢測

物體檢測 目標檢測和圖片分類的區別&#xff1a; 圖像分類&#xff08;Image Classification&#xff09; 目的&#xff1a;圖像分類的目的是識別出圖像中主要物體的類別。它試圖回答“圖像是什么&#xff1f;”的問題。 輸出&#xff1a;通常輸出是一個標簽或一組概率值&am…

高并發秒殺系統設計:關鍵技術解析與典型陷阱規避

電商、在線票務等眾多互聯網業務場景中&#xff0c;高并發秒殺活動屢見不鮮。這類活動往往在短時間內會涌入海量的用戶請求&#xff0c;對系統架構的性能、穩定性和可用性提出了極高的挑戰。曾經&#xff0c;高并發秒殺架構設計讓許多開發者望而生畏&#xff0c;然而&#xff0…

藍橋杯--結束

沖刺題單 基礎 一、簡單模擬&#xff08;循環數組日期進制&#xff09; &#xff08;一&#xff09;日期模擬 知識點 1.把月份寫為數組&#xff0c;二月默認為28天。 2.寫一個判斷閏年的方法&#xff0c;然后循環年份的時候判斷并更新二月的天數 3.對于星期數的計算&#…

13、nRF52xx藍牙學習(GPIOTE組件方式的任務配置)

下面再來探討下驅動庫如何實現任務的配置&#xff0c;驅動庫的實現步驟應該和寄存器方式對應&#xff0c;關 鍵點就是如何調用驅動庫的函數。 本例里同樣的對比寄存器方式編寫兩路的 GPOITE 任務輸出&#xff0c;一路配置為輸出翻轉&#xff0c;一路設 置為輸出低電平。和 …

Java的基本語法(1)

一、運算符和表達式 舉例說明什么是運算符&#xff0c;什么是表達式&#xff1a; int a 1; int b 2; int c a b; 在這個例子當中&#xff0c;是運算符&#xff0c;并且是算術運算符 ab是表達式&#xff0c;因為是運算符&#xff0c;所以ab是算術表達式 1.1算術運算符 …

C++學習之密碼學知識

目錄 1.文檔介紹 2.知識點概述 3.項目準備 4.序列化介紹 5.項目中基礎組件介紹 6.基礎模塊在項目中作用 7.項目中其他模塊介紹 8.加密三要素 9.對稱加密和非堆成加密 10.對稱和非對稱加密特點 11.堆成加密算法des 12.des對稱加密算法 13.對稱加密算法aes 14.知識點…

安裝vllm

ubuntu 22.04, RTX3080, cuda 12.1, cudnn 8.9.7&#xff0c;cuda和cudnn的安裝參考&#xff1a;https://blog.csdn.net/m0_52111823/article/details/147154526?spm1001.2014.3001.5501。 查看版本對應關系&#xff0c;下載12.1對應的whl包&#xff0c;https://github.com/vl…

【WPF】自定義控件:ShellEditControl-同列單元格編輯支持文本框、下拉框和彈窗

需要實現表格同一列&#xff0c;單元格可以使用文本框直接輸入編輯、下拉框選擇和彈窗&#xff0c;文本框只能輸入數字&#xff0c;彈窗中的數據是若干位的二進制值。 本文提供了兩種實現單元格編輯狀態下&#xff0c;不同編輯控件的方法&#xff1a; 1、DataTrigger控制控件的…

Gson、Fastjson 和 Jackson 對比解析

目錄 1. Gson (Google) 基本介紹&#xff1a; 核心功能&#xff1a; 特點&#xff1a; 使用場景&#xff1a; 2. Fastjson (Alibaba) 基本介紹&#xff1a; 核心功能&#xff1a; 特點&#xff1a; 使用場景&#xff1a; 3. Jackson 基本介紹&#xff1a; 核心功能…

淺談微信視頻號推薦算法

這次可能會稍微有點干貨&#xff0c;但保證不晦澀~ 一、算法推薦的本質&#xff1a;猜你喜歡 vs 社交綁架? 視頻號的推薦系統本質上在做兩件事&#xff1a; ?預測你的興趣?&#xff1a;通過你的瀏覽、點贊、評論、分享等行為&#xff0c;分析你的偏好。?滿足社交需求?&…

halcon模板匹配(一)create_shape_model_xld

目錄 一、提取剎車盤孔洞輪廓二、形狀模板的創建-設置-訓練-查找三、找到亮的圓孔四、獲得匹配結果五、使用use_polarity進行模板匹配六、計算四個圓對應的矩形框七、創建四個圓對應的模板并查找一、提取剎車盤孔洞輪廓 小技巧總結,使用boundary 函數提取區域邊界,在邊界范圍…