程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python學習---day6

編輯:Python

字符串

作用:傳遞信息
字符串表達式:使用單引號或者雙引號引起來的一串符號
字符串的性質
1.字符串是有序的(下標、切片)
2.字符串是不可變的(無增刪改)
3.字符串的容器符號:‘’,“”,‘’‘’‘’,“”“”“”;類型:str
4.字符串分類:普通字符、轉義字符、原始字符串

一、轉義字符

----有特殊含義的符號
原來轉義字符規定使用\ + 數字表示有特殊意義的符號;現在c語言規定\ + 特定符號表示有特殊意義的符號

print('ab\tc\nd')print('ab\'cd')print('ab\\tcd')

ab c
d
ab’cd
ab\tcd

\ + 指定符號可以使有特殊含義的符號變成其本身
可以讓沒有特殊含義的符號變得有特殊意義

二、原始字符串

在字符串前面添加R,r,可以將字符串中的轉義字符變成其本身

print('12\t34')print(r'12\t34')

12 34
12\t34

一個轉義字符長度始終為1,添加了原始字符串得到轉義長度是2

print(len(r'\t'), len('\t'))

2 1

字符串的運算

1.字符串的拼接

得到的是新的字符串對象

print('ab' + 'cd')

abcd

2.字符串的重復

print('*' * 20)

3.字符串比較大小

遵循比較第一對不相同元素的大小原則
Python使用的編碼表是ASCII碼表的拓展表Unicode編碼表(萬國碼)

print('ab' > 'c') # ----> a和c比較

False

4.chr()/ord()

chr() — 能夠將進制轉換成對應的符號
ord() — 能夠將符號轉換成十進制

print(ord('c'))print(ord('。'))print('ab。' > 'abc')print(chr(12290))

99
12290
True

注:

  • 0-9 數字對應的范圍:49-57

  • A-Z 對應的范圍: 65-90

  • a-z 對應的范圍: 97-122

  • 左右的中文:\u4e00 - \u9fa5 (十六進制); 19968-40869(十進制)

print(chr(ord('\u4e00')), chr(ord('\u9fa5')))for i in range(19968, 40870): print(chr(i), end=' ')

(一部分)
詇 詈 詉 詊 詋 詌 詍 詎 詏 詐 詑 詒 詓 詔 評 詖 詗 詘 詙 詚 詛 詜 詝 詞 詟 詠 詡 詢 詣 詤 詥 試 詧 詨 詩 詪 詫 詬 詭 詮 詯 詰 話 該 詳 詴 詵 詶 詷 詸 詹 詺 詻 詼 詽 詾 詿 誀 誁 誂 誃 誄 誅 誆 誇 誈 譽 謄 誋 誌 認 誎 誏 誐 誑 誒 誓 誔 誕 誖 誗 誘 誙 誚 誛 誜 誝 語 誟 誠 誡 誢 誣 誤 誥 誦 誧 誨 誩 說 誫 説 読 誮 誯 誰…

5.字符串的成員運算

in、 not in

print('a' in 'abc')

True

補充
二進制:0、1
例:A:二進制:0b01000001,十進制:65,十六進制:0x41,八進制符號:0o101

print(chr(0b01000001), chr(65), chr(0x41), chr(0o101))

A A A A

  • hex() - 將進制轉換為十六進制

  • oct() - 講進制轉換為八進制

print(hex(65))print(oct(65))

0x41
0o101

字符串的下標和切片

str1 = '''從前有座山山上有座廟廟裡有個老和尚老和尚對小和尚說'''

下標

獲取第一個“山”,下標為5,換行相當於一個’\n‘

print(str1[5])

"說"的下標

print(str1[-2])

**注意:**一個回車鍵相當於一個’\n’,長度為1

切片

1.將“從前有座山”取出

print(str1[1: 6])

從前有座山

2.將“廟有老”

print(str1[13:18:2])

廟有老

3.將“廟座有上山”

print(str1[-19: -24: -1])

廟座有上山

補充
一行完整的內容如何換行?

num = 1 + 2 + \ 3 + 4 + 5 + 6 + 7 + 8 \ + 1 + 2 + 3 + \ 4 + 5 + 6 + \ 7 \ + \ 82 \ + 10print(num)str2 = '3245678' \ '9087654'print(str2)

156
32456789087654

字符串的遍歷

str1 = '王者榮耀'

直接遍歷

for i in str1: print(i)




耀

間接遍歷

for i in range(len(str1)): print(str1[i])# 獲取王榮for i in range(0, len(str1), 2): print(str1[i]) 




耀

練習
1.“abcderf”—>“ABCDERF”

str2 = 'abcderf'str3 = ''for i in str2: print(chr(ord(i)-32)) str3 += chr(ord(i)-32)print(str3)

ABCDERF
2.‘abcdABDCD一二三四’—>‘ABCDabcd一二三四’

str4 = 'abcdABDCD一二三四'str5 = ''for i in str4: if 'a' <= i <= 'z': str5 += chr(ord(i) - 32) elif 'A' <= i <= 'Z': str5 += chr(ord(i) + 32) else: str5 += iprint(str5)

ABCDabdcd一二三四

字符串的方法和函數

1.split()

切割,以指定符號為切割點,將切割點左右的字符串分開並且保存到列表中

print('abcAKAUHFAskfnalnla/s'.upper())

ABCAKAUHFASKFNALNLA/S

2.lower()

大寫字母轉小寫字母

print('abcAKAUHFAskfnalnla/s'.lower())

abcakauhfaskfnalnla/s

3.capitalize()

將字符串中首字母大寫,必須以字母開頭的字符串

print('abc123D456;.b'.capitalize())

Abc123d456;.b

5.split()

切割,以指定符號為切割點,將切割點左右的字符串分開並且保存到列表中

result1 = '1, 2, 3'.split(',')print(result1)print('3' + '' == '3')

Abc123D456;.B

6.split()

切割,以指定符號為切割點,將切割點左右的字符串分開並且保存到列表中

result1 = '1, 2, 3'.split(',')print(result1)print('3' + '' == '3')

[‘1’, ’ 2’, ’ 3’]
True

7.join()

將一個所有元素均為字符串的序列(容器)中的所有元素以指定符號拼接起來

result2 = ','.join(result1)print(result2)

1, 2, 3

8.strip()

默認去掉字符串頭尾的空符號(空格、\n、\t等都是空符號),也可以指定去除的符號

str1 = '\nabc \t\n'print('-' * 20)print(str1)print('-' * 20)print(str1.strip())print('-' * 20)print(str1.strip('\n'))print('-' * 20)print('abc--'.strip('.'))

9.replace()

替換

  • replace(‘old_str’,‘new_str’) — 將一個字符串中的全部old_str替換成new_str

  • replace(‘old_str’,‘new_str’,‘次數’) — 將一個字符串中指定數量的old_str替換成new_str

str1 = ',1, 2, 3,'print(str1.replace(',', ' '))print(str1.replace(',', ' ', 2))

1 2 3
1 2, 3,

應用
“你可真是個垃圾”
–主、謂、賓
–Python中有一個模塊jieba
[‘你’, ‘可’, ‘真是’, ‘個’, ‘垃圾’]
–現存一個詞庫(停用詞):
[‘垃圾’, ‘菜雞’, ‘辣雞’]
–如果jieba分詞後的結果在停用詞庫中出現過,直接進行替換

str1 = "你可真是個垃圾"stop_words = ['垃圾', '菜雞', '辣雞']str2 = ''list1 = ['你', '可', '真是', '個', '垃圾']for i in list1: if i in stop_words: str2 += str1.replace(i, '*'*len(i))print(str2)

你可真是個**
作者:有較強的自我管理意識.

游戲編程,一個游戲開發收藏夾~

如果圖片長時間未顯示,請使用Chrome內核浏覽器。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved