習C語言的小伙伴都知道——轉義字符。不錯,今天就和大家講解一下這個轉義字符。轉義字符的作用主要用來表示那些用一般字符不便于表示的控制代碼,然后不得不說一下轉義字符的概念:是C語言中表示字符的一種特殊形式,一般以反斜'\'開頭,后面跟一個字符或一個八進制或十六進制數表示。轉義字符具有特定的含義,不同于字符原有的意義,故稱轉義字符。在C語言中,構成字符常量的控制字符必須用轉義字符表示。轉義字符的表現形式是一種以“\”開頭的字符。例如退格符用'\b'表示,換行符用'\n'表示。轉義字符中的'\'表示它后面的字符已失去它原來的含義,轉變成另外的特定含義。反斜杠與其后面的字符一起構成一個特定的字符。下面為大家整理一些常用的轉義字符及其含義,方便初學的小伙伴學習理解:
從上圖中可以看出,在C語言中有三種轉義字符,它們是:十六進制轉義字符·、一般轉義字符和八進制轉義字符。
十六進制轉義字符
它是由反斜杠'/'和字母x(或X)及隨后的1~2個十六進制數字構成的字符序列。例如,'\x30'、'\x41'、'\X61'分別表示字符'0'、'A'和'a'。因為字符'0'、'A'和'a'的ASCII碼的十六進制值分別為0x30、0x41和0x61。可見,字符集中的所有字符都可以用十六進制轉義字符表示。
一般轉義字符
這種轉義字符,雖然在形式上由兩個字符組成,但只代表一個字符。常用的一般轉義字符為:
\a \n \t \v \b \r \f \ \’ \"
細心的讀者可能已經發現,轉義字符'\/'代表的反斜杠"/"、轉義字符’\’’代表的字符"'"和轉義字符'\"'代表的字符""",其本身就是可顯示字符,為什么還要對它轉義呢?這是因為它們的原有的字符形式已作它用,其中單引號用作區分字符常量的括號,雙引號用作區分字符串(下面將要介紹字符串)的括號,而反斜杠本身已用來表示轉義字符的開頭,因此必須對它們用轉義字符重新聲明。
八進制轉義字符
它是由反斜杠'/'和隨后的1~3個八進制數字構成的字符序列。例如,''、'1'、'1'分別表示字符'0'、'A'和'a'。因為字符'0'、'A'和'a'的ASCII碼的八進制值分別為60、101和141。字符集中的所有字符都可以用八進制轉義字符表示。如果你愿意,可以在八進制數字前面加上一個0來表示八進制轉移字符。
學習轉義字符必須要注意一些問題:第一,在C程序中,使用不可打印字符時,通常用轉義字符表示:第二, \v 垂直制表和\f 換頁符對屏幕沒有任何影響,但會影響打印機執行響應操作:最后, 轉義字符中只能使用小寫字母,每個轉義字符只能看作一個字符。
學習C語言一定要注重基礎知識的學習和細節方面的問題,但是好多初學的小伙伴在學習這些內容時不重視, 總是急于編程序。但是如果基礎知識學習不扎實,編程時就會錯誤百出。所以在C語言入門的時候還是應該重視概念的學習。當然也不要花費太多時間, 大致弄清這些基礎知識,以后就可以開始簡單地編程了,在程序出現一些細節方面的問題時,再回過頭去檢查自己基礎知識的遺漏點,這樣既可以鞏固基礎知識,又可以編寫出高質量的程序。 可以達到事半功倍的效果。希望喜歡學習C語言的小伙伴可以早日成為大神~
轉義字符換行,n表示newline
print('hello\nworld')
hello
world
#轉義字符t表示水平制表位tab
print('hello\tworld')
hello world
#轉義字符r表示回車,光標回到首位
print('hello\rworld')
world
#轉義字符b表示退一格
print('hello\bworld')
hellworld
#轉義斜線
print('http:\\www.baidu.com')
http:\www.baidu.com
#轉義說話內容
print('領導說:\'新來的\'')
領導說:'新來的'
#如果不希望轉義字符起作用,就是用原字符,就是在字符串之前加上r或者R
print(r'hello\nworld')
hello\nworld
錄:字符轉義,編碼解碼,格式化補充,format擴展,進制轉化,深淺拷貝
代碼 功能 例子
\n 換行符 print('hello\nworld')
\t 水平制表符 print('\thello\tworld')
\b 退格,往前刪除一格 print('hell \bo')
\r 當前位置移到本行開頭,\r之前的數據被后面的覆蓋,不是刪除 print(' he\rllo')
\ 一個單斜杠 print(' \')
\' 一個單引號 print('\'')
\" 一個雙引號 print('\"')
>\0 一個空格(僅用于交互式環境下,也就是命令窗口中) print('her\0sdf')< 一個空格(僅用于交互式環境下,也就是命令窗口中) print('her>\0 一個空格(僅用于交互式環境下,也就是命令窗口中) print('her\0sdf')<>
\a 電腦提示音(僅用于交互式環境下) print('\a')
在字符串前加r,就可以防止轉義
print('\t00b')
print(r'\t00b')
00b
\t00b
a='你好 python'
b=a.encode('utf-8')
print(b)
print(b.decode('utf-8'))
b'\xe4\xbd\xa0\xe5\xa5\xbd python' ---- 只編碼中文字符串,英文字符串不變
你好 python --- 解碼要先新設變量存儲編碼后的數據,解碼是在新變量的基礎上解
代碼 功能 例子
%s 占位符 print('%s' % '帥')
%r 顯示原數據類型 print('%r' % '帥')
%d 整數 print('%d' % 數字)
%f 浮點數 print('%f' % 數字)
%c 查找ASCII表(就是一個特殊的表)里對應數字的元素 print('%c' % 數字)
%o 將數字轉為8進制(逢8進1) print('%o' % 數字)
%x 16進制 (逢16進1) print('%x' % 數字)
%e 科學計數法 print('%e' % 數字)
- 左對齊,用法:%-6指定長度.4指定小數點后面的位數 print('%-6.4f' % 10.3)
+ 顯示正號 print('%+6.4f' % 10.3)
%數字s 設置格式化長度 print('%5s' % 'ab')
1.%s 占位符
print('%s年%s月%s日' % (2021,4,28))
2021年4月28日
2.%r 顯示原數據類型
print('%r' % ('2021,4,28'))
'2021,4,28' --- 原本的引號都一并輸出,和原數據一模一樣
3.%d 整數
print('%d' % 1.8) #相當于向下取整
1
4.%f 浮點數
print('%f' % 1.4) #自動保留六位小數
1.400000
5.%c 查找ASCII表(就是一個特殊的表)里對應數字的元素
print('%c' % 65)
print('%c' % 100)
A
d
6.%o 8進制(逢8進1)
print('%o' % 65)
101
7.%x 16進制
print('%x' % 65)
41
8.%e 科學計數法
print('%e' % 65) #65=6.5 *10的一次方,結果中的01=10的1次方
6.500000e+01
9.%-6指定長度 .4指定小數點后面的位數
print('%-6.4f' % 10.3) #4規定小數點后面有幾位,f代表浮點數,6為指定長度;優先滿足小數點后幾位數
10.3000
10.%+ 顯示正號
print('%+6.4f' % 10.3)
+10.3000
11.%數字s 設置格式化長度
print('%5s' % 'ab')
ab --- ab前面空了三格
功能 例子
保留小數點后兩位數 print('{:.2f}'.format(10.3333333333))
指定傳入,保留小數點后兩位數 print('{s:.2f}'.format(s=10.33333333333))
百分比格式化 print('{:.2%}'.format(0.33))
轉16進制 print('{:x}'.format(20))
轉8進制 print('{:o}'.format(20))
左對齊,長度為10 print('{a:<10}'.format(a=10.333, b=21.21))
傳入數據長度不足,用x填充 print('{a:x<10}'.format(a=12.1, b=23))
右對齊 print('{a:x>10}'.format(a=12.1, b=23))
兩端對齊 print('{a:x^10}'.format(a=12.1, b=23))
1.保留小數點后兩位數
print('{:.2f}'.format(10.3333333333))
10.33
2.指定傳入,保留小數點后兩位數
print('{s:.2f}'.format(s=10.33333333333))
10.33
3.百分比格式化
print('{:.2%}'.format(0.33))
33.00%
4.轉16進制
print('{:x}'.format(20))
14
5.轉8進制
print('{:o}'.format(20))
24
6.左對齊,字符長度為10
print('{a:<10}'.format(a=10.333, b=21.21))
10.333 --- 3的后面還有4個空格
7.傳入數據長度不足,用x填充
print('{a:x<10}'.format(a=12.1, b=23)) #<箭頭尖指向左邊,所以往左對齊
12.1xxxxxx
8.右對齊
print('{a:x>10}'.format(a=12.1, b=23)) #>箭頭尖指向右邊,所以往右對齊
xxxxxx12.1
9.兩邊對齊
print('{a:x^10}'.format(a=12.1, b=23))
xxx12.1xxx
代碼 功能 例子
bin() 十進制轉二進制 bin(4)
oct() 十進制轉八進制 oct(10)
hex() 十進制轉十六進制 hex(16)
int('輸入需轉化的數字', 輸入進制對應的數字) 其它進制轉十進制 int('100',2)
ord() 將字符轉換為ASCII碼 ord('a')
chr() 將ASCII碼轉換成字符 chr(97)
1.bin() 十進制轉二進制
print(bin(4)) #4=2*2,逢2進1,所以就是10*10=100
0b100 --- 0b表示進制,后面的100才是4轉2進制的值
2.oct() 十進制轉八進制
print(oct(10)) #10=8+2,逢8進1,所以為12
0o12
3.hex() 十進制轉十六進制
print(hex(16)) #16=16+0,逢16進1,所以為10
0x10
4.int('輸入需轉進制的數字 ', 輸入進制代表的數字)其他進制轉十進制
int('100',2)
#需要在交互模式環境下(或者python console);在命令窗口中,只能轉為16進制,輸其他進制會報錯
4
5.ord() 將字符轉換為ASCII碼
print(ord('a'))
97
6.chr() 將ASCII碼轉換成字符
print(chr(97))
a
1.淺復制---copy()----內層id地址一致,外層不一致
淺復制:內層id一致,外層不一致
內層id地址一致,說明改動內嵌列表,其他含有這個內嵌列表的列表都會跟著改變
淺復制:內層id一致,a列表改變,b和c也跟著一起變
2.深復制---- 調用copy內置庫(import copy)---copy.deepcopy()
內層地址不一致,外層地址不一致
深復制,內層地址不一致,當一列表改變時,另一列表不受影響
*請認真填寫需求信息,我們會在24小時內與您取得聯系。