日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】编程笔记2

發(fā)布時(shí)間:2025/3/19 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】编程笔记2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、字符串和編碼

1、字符編碼

過程:ASCII ==》Unicode ==》utf-8

  • ASCII編碼:一個(gè)字節(jié),127個(gè)字符;
  • Unicode將所有語言都統(tǒng)一到一套編碼中,解決了亂碼的問題。Unicode最常用的用 2 個(gè)字節(jié)表示一個(gè)字符(若要用到非常偏僻的字符,就需要4個(gè)字節(jié));
  • UTF-8 解決了Unicode編碼空間浪費(fèi)問題,將Unicode轉(zhuǎn)換為”可變長編碼“。具體來說,UTF-8 編碼把一個(gè) Unicode 字符根據(jù)不同的數(shù)字大小編碼成 1-6 個(gè)字節(jié),常用的英文字母被編碼成 1 個(gè)字節(jié),漢字通常是 3 個(gè)字節(jié),只有很生僻的字符才會(huì)被編碼成 4-6 個(gè)字節(jié)。

在計(jì)算機(jī)內(nèi)存中,統(tǒng)一使用 Unicode 編碼,當(dāng)需要保存到硬盤或者需要傳輸?shù)臅r(shí)候,就轉(zhuǎn)換為 UTF-8 編碼。

2、字符串

Python3中字符產(chǎn)是以 Unicode 編碼的。
==》支持多語言

print('包含中文的 str')

輸出結(jié)果

包含中文的 str

(1)ord() 與 chr()

對(duì)于單個(gè)字符的編碼,有:

  • ord()函數(shù):獲取字符的整數(shù)表示;
  • chr()函數(shù):把編碼轉(zhuǎn)換為對(duì)應(yīng)的字符;
print(ord('A')) print(ord('中')) print(chr(66)) print(chr(25991))

輸出結(jié)果

65 20013 B 文

(2)str類型 ==》bytes類型

bytes類型的數(shù)據(jù)用帶 b前綴 的單引號(hào)或雙引號(hào)表示:

# 區(qū)分'ABC'和 b'ABC',前者是 str, # 后者雖然內(nèi)容顯示得和前者一樣, # 但 bytes 的每個(gè)字符都只占用一個(gè)字節(jié)。 x = b'ABC'

(3)encode()

以 Unicode 表示的 str 通過 encode()方法可以編碼為指定的 bytes。

  • 純英文 str 可用ASCII編碼為bytes;
  • 含有中文的 str 可用 UTF-8 編碼為bytes;
  • 含有中文的 str 不能用ASCII編碼,因?yàn)橹形木幋a超出了ASCII編碼的范圍==》報(bào)錯(cuò)
print('ABC'.encode('ascii')) print('中文'.encode('utf-8')) print('中文'.encode('ascii'))

輸出結(jié)果

b'ABC' b'\xe4\xb8\xad\xe6\x96\x87' UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

(4)decode()

bytes ==》str

print(b'ABC'.decode('ascii')) print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))

輸出結(jié)果:

ABC 中文
  • len()函數(shù):計(jì)算str包含的字符數(shù)
print(len('ABC')) print(len('中文')) ## str類型 print(len(b'ABC')) print(len(b'\xe4\xb8\xad\xe6\x96\x87')) print(len('中文'.encode('utf-8')))

輸出結(jié)果:

3 2 3 6 6

==》1 個(gè)中文字符經(jīng)過 UTF-8 編碼后通常會(huì)占用 3 個(gè)字節(jié),而 1 個(gè)英文字符只占用 1 個(gè)字節(jié)。

==》為了避免亂碼問題,應(yīng)當(dāng)始終堅(jiān)持使用 UTF-8 編碼對(duì) str 和 bytes 進(jìn)行轉(zhuǎn)換。

3、utf-8編碼讀取

#! /usr/bin/env python3 # -*- coding:utf-8 -*-

解讀:

  • 第一行注釋是為了告訴 Linux/OS X 系統(tǒng),這是一個(gè) Python 可執(zhí)行程序,Windows 系統(tǒng)會(huì)忽略這個(gè)注釋;
  • 告訴 Python 解釋器,按照 UTF-8 編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會(huì)有亂碼。
  • 二、格式化

    print('Hello, %s' % 'world') print('Hi, %s, you have $%d.' % ('Michael', 1000000))

    輸出結(jié)果

    Hello, world Hi, Michael, you have $1000000.

    如果只有一個(gè) %? ,括號(hào)可以省略。

    1、常用的占位符

    占位符含義
    %d整數(shù)
    %f浮點(diǎn)數(shù)
    %s字符串
    %x十六進(jìn)制整數(shù)

    2、格式控制

    • 格式化整數(shù)和浮點(diǎn)數(shù)還可以指定是否補(bǔ) 0 和整數(shù)與小數(shù)的位數(shù):
    print('%2d-%02d' % (3, 1)) print('%.2f' % 3.1415926)

    輸出結(jié)果

    3-01 3.15

    若不確定用什么==》使用%s,轉(zhuǎn)化為字符串

    三、list 和 tuple

    1、list 列表

    list 是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。

    classmates = ['Michael','Bob','Tracy'] print(classmates)## len() 函數(shù)獲取list print(len(classmates))## 用索引進(jìn)行元素的訪問 print(classmates[0]) print(classmates[1]) print(classmates[2]) # # 當(dāng)索引超出了范圍時(shí), Python 會(huì)報(bào)一個(gè) IndexError 錯(cuò)誤 # print(classmates[3]) print(classmates[-1]) # 取最后一個(gè)元素 print(classmates[-2]) # 取倒數(shù)第 2 個(gè)## 添加元素 classmates.append('Adam') # 添加元素到末尾 print(classmates) classmates.insert(1, 'Jack') # 在指定位置插入元素,eg:索引號(hào)為 1 的位置 print(classmates)## 刪除元素 classmates.pop() # 刪除末尾元素 print(classmates) # 刪除指定位置的元素,pop(i),i為索引位置 classmates.pop(1) print(classmates)## 元素替換 classmates[1] = 'Sarah' print(classmates)## list中元素的數(shù)據(jù)類型可以不同,可以嵌套 L = ['Apple', 123, True] s = ['python', 'java', ['asp', 'php'], 'scheme'] print(len(s))

    輸出結(jié)果

    ['Michael', 'Bob', 'Tracy'] 3 Michael Bob Tracy Tracy Bob ['Michael', 'Bob', 'Tracy', 'Adam'] ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam'] ['Michael', 'Jack', 'Bob', 'Tracy'] ['Michael', 'Bob', 'Tracy'] ['Michael', 'Sarah', 'Tracy'] 4

    2、tuple

    tuple 一旦初始化就不能修改。
    也就是,tuple 的每個(gè)元素,指向永遠(yuǎn)不變。

    classmates = ('Micjael', 'Bob', 'Tracy') ## 因?yàn)槌跏蓟蟛荒苄薷?#xff0c;所以沒有append()、insert()這樣的方法。 ## 可以訪問 print(classmates[0]) print(classmates[-1])## 空的 tuple t = () print(t)## 定義只有 1 個(gè)元素的 tuple # Python 規(guī)定:按小括號(hào)進(jìn)行計(jì)算,計(jì)算結(jié)果自然是 1。 t = (1,) print(t)## “可變的”tuple t = ('a', 'b', ['A', 'B']) t[2][0] = 'X' t[2][1] = 'Y' print(t)

    輸出結(jié)果

    Micjael Tracy () (1,) ('a', 'b', ['X', 'Y'])

    四、條件判斷

    1、條件判斷—— if 語句

    注意

    • 不要少寫冒號(hào);
    • elif 是else if 的縮寫;
    if <條件判斷1>:<執(zhí)行1> elif <條件判斷2>:<執(zhí)行2> elif <條件判斷3>:<執(zhí)行3> else:<執(zhí)行4>

    示例1

    age = 20 if age <= 6:print('kid') elif age <= 18:print('teenager') else:print('adult')

    輸出結(jié)果

    adult

    示例2

    if x:print('True') else:print('Fasle')

    分析:只要 x 是非零數(shù)值、非空字符串、非空 list 等,就判斷為 True,否則為 False。

    注意:input() 函數(shù)

    birth = input('birth:') if birth < 2000:print('00前') else:print('00后')

    報(bào)錯(cuò)

    TypeError: '<' not supported between instances of 'str' and 'int'

    input()返回的數(shù)據(jù)類型是 str, str 不能直接和整數(shù)比較,必須先把 str 轉(zhuǎn)換成整數(shù)。

    修改版本:str類型轉(zhuǎn)換為int類型

    birth = input('birth:') if int(birth) < 2000:print('00前') else:print('00后')

    2、循環(huán)

    (1)for … in 循環(huán)

    依次把 list 或 tuple 中的每個(gè)元素迭代出來。

    names = ['Michael', 'Bob', 'Tracy'] for name in names:print(name)

    輸出結(jié)果

    Michael Bob Tracy

    常用:range() 函數(shù)

    sum = 0 # range(101):生成 0-100 的整數(shù)序列 for x in range(101):sum = sum + x print(sum)

    輸出結(jié)果

    5050

    (2)while 循環(huán)

    只要條件滿足,就不斷循環(huán),條件不滿足時(shí)退出循環(huán)。

    sum = 0 n = 99 while n > 0:sum = sum + nn = n - 2 print(sum)

    ==》2500

    總結(jié)

    以上是生活随笔為你收集整理的【Python】编程笔记2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。