python初識(二) python初識(一)

目錄:

  • 進制
  • 基本數據類型
    • 整形
    • 布爾值
    • 字符串
    • 列表
    • 元祖
    • 字典
    • 集合
  • range & enumerate

1、進制

  二進制轉換十進制計算:html

  十進制:==47python

  一個字節公式:==128 64 32 16 8 4 2 1git

  二進制: == 0    0   1   0 1 1 1 1算法

  一、二進制(0b):python3.x

     a.表現形式:0、1 --〉11 ==十進制3api

     b.python中的應用:    數據結構

十進制:a = 5app

轉換:bin(a)python2.7

結果:'0b101' ==〉 cpu處理:00000101ide

  二、八進制(0o):

     a.表現形式:0、一、二、三、四、五、六、七、8 -->11 ==十進制9

     b.python中的應用:    

十進制:a = 11
轉換:oct(a)
結果:'0o13'   ==〉 cpu處理:000001101 

 

  三、十進制 

a.表現形式:0、一、二、三、四、五、六、七、八、九、10 -->11 ==十進制11

     b.python中的應用:    

十進制:a = 11 

結果:11  ==〉 cpu處理:000001101

注意:其實在python3裏所留代碼都是轉換成十六進制存儲的 

 

  四、十六進制(0x)

     a.表現形式:0、一、二、三、四、五、六、七、八、九、 A、 B、C、D、E、F -->A ==十進制11

     b.python中的應用:    

十進制:a = 20
轉換:hex(a)
結果:'0x14' ==〉 cpu處理:000001010


五、總結:

a. 硬盤上保存數據:爲二進制文件,python3展現的時候爲了方便,展現的時候爲了方便會顯示十六進制

b. cpu處理讀取:01010101010101010101 -> 對應的編碼的漢字 --> xx
c. python3:

- 轉換完成的字符串
- 以十六進制展現的

2、  基本數據類型

一、整形(int)

沒啥好說的,直接上代碼,哈哈。

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Shu Yang Wang
 4 
 5 '''
 6 int 整數類型
 7 '''
 8 
 9 '''
10 1. 當前整數的二進制表示,最少位數
11 '''
12 age = 4  # 二進制100
13 print(age.bit_length())
14 #結果爲3
15 
16 '''
17 2. 獲取當前數據的字符表示
18 '''
19 age = 15
20 v = age.to_bytes(10,byteorder='big')
21 print('獲取當前數據的字符表示big', v)  # b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f'
22 v = age.to_bytes(10,byteorder='little')
23 print('獲取當前數據的字符表示little', v)  # b'\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00'
24 '''
25 ps. 顯示爲十六進制0f爲15, little爲從右邊補0, big爲從左邊補0
26     0f ==> 二進制爲 0000 1111 表明一個字節碼
27 '''
View Code

 

二、布爾值(bool)

代碼都不用上,簡單吧。

當傳入的對象爲空時,爲False -->0, 不然爲True --> 1

例如:爲False狀況,以下:
v = 0
v = ''
v = []
v = {}
v = ()
v = False
其餘值均爲True 或者說是 1。

三、字符串(str)

a. 經常使用str類的實例對象(方法)有:


# name.upper()
# name.lower()
# name.split()
# name.find()
# name.strip()
# name.startswith()
# name.format()
# name.replace()
# "shuyang".join(["aa",'bb'])

b. __add__ 功能, str類的隱藏參數,詳細爲學習到面向對象,在詳細分析目前用途爲 v = v1 + v2 實際就是條用__add__參數

c. 代碼實例詳解

  1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 # Author:Shu Yang Wang
  4 
  5 '''
  6 字符串內置方法調用
  7 '''
  8 
  9 '''
 10 a. 字符大寫變小寫,casefold能夠轉目前全部字符,大寫變小寫,如:德語
 11 lower()只能是英文的大寫便小寫。
 12 注意:中文沒有大小寫
 13 '''
 14 name = 'Alex'
 15 v = name.casefold()
 16 v1 = name.lower()
 17 print('casefold and lower', v, v1)
 18 
 19 '''
 20 b. 首字母大寫、所有變大寫
 21 '''
 22 name1 = 'alex'  # str類的對象
 23 # capitalize 字符串字母大寫
 24 # name1自身不變,capitalize方法會生成一個新的值
 25 v2 = name1.capitalize()
 26 print('首字母大寫',name1,v2)
 27 # 所有變大寫
 28 name1 = 'alex'
 29 v2 = name1.upper()
 30 print('所有變大寫',name1,v2)
 31 
 32 '''
 33 c. 文本居中,默認爲空格分隔, 及左右空格
 34 center, rjust,ljust
 35 參數1:表示總長度
 36 參數2: 空白處填充的字符(長度爲1)
 37 '''
 38 name2 = 'alex'
 39 v3 = name2.center(20)
 40 print('文本居中', v3)
 41 v3 = name2.center(20,'-')
 42 print('文本居中1', v3)
 43 v3 = name2.center(20,'*')
 44 print('文本居中2', v3)
 45 v3 = name2.center(20,'')
 46 print('文本居中3', v3)
 47 v3 = name2.ljust(20,'*')
 48 print('從左邊開始20位,不夠補*', v3)
 49 v3 = name2.rjust(20,'-')
 50 print('從右邊開始20位,不夠補-', v3)
 51 
 52 '''
 53 d. 字符串出現的關鍵字統計
 54 參數1:要查找的值(子序列)
 55 參數2:起始位置(索引)
 56 參數3:結束位置(索引)
 57 '''
 58 name3 ='fafafadffgfdgdaerwerweqweqeaaaa'
 59 v4 = name.count('a')
 60 print('字符串出現的關鍵字統計', v4)
 61 v4 = name.count('we',12)
 62 print('字符串出現的關鍵字統計', v4)
 63 v4 = name.count('we',20)
 64 print('字符串出現的關鍵字統計', v4)
 65 
 66 '''
 67 e.是否以XX結尾,是否已XX開頭
 68 '''
 69 name4 = 'alex'
 70 #以XX結尾
 71 v5 = name.endswith('ex')
 72 print('以XX結尾', v5)
 73 #以XX開頭
 74 v5 = name.startswith('ex')
 75 print('以XX開頭', v5)
 76 
 77 '''
 78 f. encode 
 79 str = "人生苦短,我用python";
 80 str_utf8 = str.encode("UTF-8")
 81 str_gbk = str.encode("GBK")
 82 
 83 print(str)
 84 
 85 print("UTF-8 編碼:", str_utf8)
 86 print("GBK 編碼:", str_gbk)
 87 
 88 print("UTF-8 解碼:", str_utf8.decode('UTF-8','strict'))
 89 print("GBK 解碼:", str_gbk.decode('GBK','strict'))
 90 '''
 91 
 92 
 93 '''
 94 g. 找到製表符\t,進行替換(包含前面的值)
 95 PS:\n
 96 '''
 97 name6 = 'al\te\tx\nalex\tuu\tkkk'
 98 v7 = name.expandtabs(20)
 99 print('找到製表符/t,進行替換(包含前面的值)',v7)
100 
101 
102 '''
103 h. 找到指定子序列的索引位置:
104 find:不存在返回-1
105 index: 不存在報錯
106 '''
107 name7 = 'alex'
108 v8 = name7.find('o')
109 print('找到指定子序列的索引位置:不存在返回-1',v8)
110 v8 = name7.index('a')
111 print('找到指定子序列的索引位置:不存報錯',v8)
112 
113 '''
114 i. 字符串格式化
115 '''
116 # tp1 = '我是:%s 年齡:%s 性別:%s'
117 tpl = '我是:{0} 年齡:{1} 性別:{2}'
118 v9 = tpl.format('舒陽', 19, '')
119 print('字符串格式化', v9)
120 
121 tpl = '我是:{name} 年齡:{age} 性別:{gender}'
122 v9 = tpl.format(name = '舒陽',age = 19, gender ='')
123 print('字符串格式化2', v9)
124 
125 tpl = '我是:{name} 年齡:{age} 性別:{gender}'
126 v9 = tpl.format_map({'name':'舒陽','age':19, 'gender':''})
127 print('字符串格式化2', v9)
128 
129 
130 '''
131 g. 是不是數字、漢字
132 '''
133 name9 = 'alex8漢字'
134 v10 = name9.isalnum()  # 字,數字, 字母
135 print('isalnum是不是數字、漢字', v10)
136 v10 = name9.isalpha()  # 字母
137 print('isalpha是不是字母', v10)
138 
139 '''
140 k. 判斷是不是數字
141 '''
142 # num = 123
143 # num = '二'
144 num = ''
145 v11 = num.isdecimal()  # '123'
146 print('isdecimal判斷是不是數字', v11)
147 v11 = num.isdigit()  # '123', '②'
148 print('isdigit判斷是不是數字', v11)
149 v11 = num.isnumeric()  # '123','二','②'
150 print('isnumeric判斷是不是數字', v11)
151 
152 '''
153 l. 是不是表式符
154 '''
155 n = 'name'
156 v12 = n.isidentifier()
157 print('是不是製表符', v12)
158 
159 '''
160 m. 是否所有是小寫 or 大寫
161 '''
162 # 是否所有是小寫
163 name13 = 'alex'
164 v13 = name13.islower()
165 print('是否所有是小寫', v13)
166 # 是否所有是大寫
167 name13 = 'ALEX'
168 v13 = name13.isupper()
169 print('是否所有是大寫', v13)
170 
171 '''
172 n. 是否包含隱含的xx,如:/t /n /r
173 '''
174 name14 = "釣魚要掉刀魚,\n刀魚要到島上掉"
175 v14 = name14.isprintable()
176 print('是否包含隱含的xx,如:/t /n /r', v14)
177 
178 '''
179 o. 是否所有是空格
180 '''
181 name15 = '      '
182 v15 = name.isspace()
183 print('是否所有是空格', v15)
184 
185 '''
186 p. 元素拼接(元素字符串) 五星重要
187 '''
188 name16 = 'alex'
189 v16 = '_'.join(name16)
190 print('元素拼接(元素字符串)', v16)
191 # ps. list使用join拼接
192 name_16_list = ['a', 'b', 'c', 'd']
193 v16 = ''.join(name_16_list)
194 print('元素拼接(元素list)', v16)
195 
196 '''
197 q. 對應關係 + 翻譯
198 '''
199 m = str.maketrans('abcedfg', '1234567')  # 對應關係字典
200 #print(m) ## {97: 49, 98: 50, 99: 51, 101: 52, 100: 53, 102: 54, 103: 55}
201 name17 = 'abcedfgfadfafafaagfgwerwrwqrqeoiwr'
202 v17 = name17.translate(m)
203 print('對應關係 + 翻譯', v17)
204 
205 '''
206 r. 分割,保留分割的元素
207 只能分割從左數第一個匹配
208 ('a', 'SB', 'bSBc')
209 '''
210 content = 'aSBbSBc'
211 v18 = content.partition('SB')
212 print('分割,保留分割的元素', v18)
213 #分割不保留元素,用spilt
214 #參數一:關鍵字
215 #參數二:從左分割幾回,有默認值 -1,全切割
216 content = 'aSBbSBc'
217 v18 = content.split('SB', 1)
218 print('分割不保留元素,用spilt', v18)
219 
220 '''
221 s. 替換
222 參數1: old_word
223 參數2: new_word
224 參數3: 替換個數,從左開始
225 '''
226 content1 = 'aSBbSBc'
227 v19 = content1.replace('SB', 'Love')
228 print('替換', v19)
229 v19 = content1.replace('SB', 'Love', 1)
230 print('替換,替換個數1', v19)
231 
232 
233 '''
234 t. 移除空白,默認/n/t/r,
235 參數一:自定義移除str
236 '''
237 name20 = 'alex\t'
238 v20 = name.strip()
239 print('移除空白', v20)
240 
241 
242 '''
243 u. 大小寫轉換
244 '''
245 name21 = "Alex"
246 v21 = name.swapcase()
247 print('大小寫轉換', v21)
248 
249 '''
250 v.填充0
251 '''
252 name22 = 'Alex'
253 v = name.zfill(20)
254 print('填充0', v)
View Code

 

四、列表(list)

list爲可變類型字符與(int,str,list,dict)同樣

切片[::]
remove刪除 --值
for循環讀取
list的嵌套
len()長度
更新

ps.以上東西已在python初識(一)中的python數據類型初識中,詳細介紹,就不重複了。下面咱們學點新東西,以下:

a.代碼示例詳解

  1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 # Author:Shu Yang Wang
  4 
  5 '''
  6 list 列表,爲可變類型字符(int,str,list,dict)
  7 '''
  8 
  9 '''
 10 a. list追加
 11 '''
 12 #創建變量
 13 user_list = ['李泉','劉一','劉康','豆豆','小龍'] # 可變類型
 14 user_list.append('劉銘')
 15 print('list追加', user_list)
 16 
 17 '''
 18 b.list清空
 19 '''
 20 user_list = ['李泉','劉一','劉康','豆豆','小龍']
 21 user_list.clear()
 22 print('list清空', user_list)
 23 
 24 '''
 25 c.list拷貝(淺拷貝)
 26 '''
 27 user_list = ['李泉','劉一','劉康','豆豆','小龍']
 28 v = user_list.copy()
 29 print('list拷貝(淺拷貝)', v)
 30 
 31 '''
 32 d.list計數
 33 '''
 34 user_list = ['李泉','劉一','劉康','豆豆','小龍','李泉']
 35 v = user_list.count('李泉')
 36 print('list計數', v)
 37 
 38 '''
 39 e. list擴展原列表
 40 '''
 41 user_list = ['李泉','劉一','李泉','劉康','豆豆','小龍']
 42 user_list.extend(['郭少龍','郭少霞'])
 43 print('list擴展原列表', user_list)
 44 
 45 
 46 '''
 47 f. list查找元素索引,有報錯
 48 '''
 49 user_list = ['李泉','劉一','李泉','劉康','豆豆','小龍']
 50 #v = user_list.index('李海')  #有報錯
 51 print('list查找元素索引,沒有報錯', v)
 52 
 53 '''
 54 g. list刪除而且獲取元素 - 索引
 55 '''
 56 user_list = ['李泉','劉一','李泉','劉康','豆豆','小龍']
 57 v = user_list.pop(1)
 58 print('刪除而且獲取元素的值', v)
 59 print('list刪除而且獲取元素的列表', user_list)
 60 
 61 '''
 62 f. list刪除 - 值
 63 '''
 64 user_list = ['李泉','劉一','李泉','劉康','豆豆','小龍']
 65 user_list.remove('劉一')
 66 print('list刪除', user_list)
 67 
 68 '''
 69 g.  list翻轉
 70 '''
 71 user_list = ['李泉','劉一','李泉','劉康','豆豆','小龍']
 72 user_list.reverse()
 73 print('list翻轉', user_list)
 74 
 75 '''
 76 h. list排序: 欠參數key=None
 77 '''
 78 nums = [11,22,3,3,9,88]
 79 print('原始list',nums)
 80 # 排序,從小到大
 81 nums.sort()
 82 print('list排序,從小到大',nums)
 83 # 從大到小
 84 nums.sort(reverse=True)
 85 print('從大到小',nums)
 86 
 87 '''
 88 i 插入 
 89 參數1: 索引位置
 90 參數2: 插入的值
 91 '''
 92 li = ['eric','alex','tony']
 93 li.insert(0,'Tony')
 94 print('插入',li)
 95 
 96 '''
 97 j. list刪除取值 --索引
 98 '''
 99 li = ['eric','alex','tony']
100 v = li.pop(1)
101 print('list刪除的值', v)
102 print('list刪除', li)
103 
104 '''
105 k. del多個刪除 -- 索引
106 '''
107 li = ['eric','alex','tony']
108 #del li[2]
109 li[0:2] # 0 =<x < 2
110 print('list刪除', li)
View Code

 

五、元祖(tuple)

  元祖不可被修改的列表,爲不可變類型,是目前python基礎類型中惟一的不可變類型,它一旦建立,便不能再修改,因此又叫只讀列表。

a.元祖(tuple)嵌套列表(list),子序列不能修改,list能夠修改,怎麼修改呢?

簡單演示:
user_tuple = ('alex','eric','seven',['陳濤','劉浩','趙芬芬'],'alex')
user_tuple[0] = 123 不對,不可變類型
user_tuple[3] = [11,22,33] 不對,不可變類型
user_tuple[3][1] = '劉一'
print(user_tuple)

b.元組最後,加逗號,由於一個元素被()默認不是元祖(潛規則)

簡單演示:
li = ('shuyang',)
print(li)

c. 代碼示例詳解

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Shu Yang Wang
 4 
 5 '''
 6 tuple元祖:元祖不可被修改的列表,爲不可變類型
 7 '''
 8 user_tuple = ('alex', 'eric', 'seven', 'alex')
 9 # a、元祖獲取個數
10 v1 = user_tuple.count('alex')
11 print('元祖獲取個數', v1)
12 # b、元祖獲取第一個索引的位置
13 v2 = user_tuple.index('alex')
14 print('元祖獲取第一個索引的位置', v2)
View Code

 

六、字典(dict)

a.字典能夠嵌套
b.字典key: 必須是不可變類型,且Ture和int(1)不能同時使用

簡單演示:
dic = {
'k1': 'v1',
'k2': [1,2,3,],
(1,2): 'lllll',  # 元祖爲不可變類型,因此能夠,但我儘可能不使用這種方式
1: 'fffffffff',
111: 'asdf',
}
print(dic)

dic = {'k1':'v1'}
del dic['k1']

c.代碼示例詳解

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Shu Yang Wang
 4 
 5 '''
 6 dict 字典
 7 '''
 8 '''
 9 a. dict清空
10 '''
11 dic = {'k1':'v1','k2':'v2'}
12 dic.clear()
13 print('dict清空', dic)
14 
15 '''
16 b.dict淺拷貝
17 '''
18 dic = {'k1':'v1','k2':'v2'}
19 v = dic.copy()
20 print('dict淺拷貝', v)
21 
22 '''
23 c. dict根據key獲取指定的value;不存在不報錯
24 '''
25 dic = {'k1':'v1','k2':'v2'}
26 v = dic.get('k1111',1111)
27 # v = dic['k1111']  # 報錯
28 print('dict根據key獲取指定的value;不存在不報錯', v)
29 
30 '''
31 d. dict刪除並獲取對應的value值
32 '''
33 dic = {'k1':'v1','k2':'v2'}
34 v = dic.pop('k1')
35 print('dict刪除並獲取對應的value值', v)
36 print('dict刪除後字典', dic)
37 
38 '''
39 e. dict隨機刪除鍵值對,並獲取到刪除的鍵值
40 '''
41 dic = {'k1':'v1','k2':'v2'}
42 v = dic.popitem()
43 print('dict刪除並獲取對應的value值', v)
44 print('dict刪除後字典', dic)
45 '''
46 # 花式取值1
47 k,v = dic.popitem() # ('k2', 'v2')
48 print(dic)
49 print(k,v)
50 
51 # 花式取值2
52 v = dic.popitem() # ('k2', 'v2')
53 print(dic)
54 print(v[0],v[1])
55 '''
56 
57 '''
58 f. dict增長默認值,若是存在則不作操做
59 '''
60 dic = {'k1':'v1','k2':'v2'}
61 dic.setdefault('k3','v3')
62 print('dict增長默認值,不存在,添加', dic)
63 dic.setdefault('k1','1111111')
64 print('dict增長默認值,存在,不變', dic)
65 
66 '''
67 g. dict批量增長或修改
68 '''
69 dic = {'k1':'v1','k2':'v2'}
70 dic.update({'k3':'v3','k1':'v24'})
71 print('dict批量增長或修改', dic)
72 
73 '''
74 h. 批量建立方式
75 參數1: key值列表
76 參數2: 全部key默認初始值val值
77 '''
78 dic = dict.fromkeys(['k1','k2','k3'],123)
79 print('dict批量建立方式', dic)
80 #修改
81 dic['k1'] = 'asdfjasldkf'
82 print('dict批量建立方式--修改', dic)
83 '''
84 # 注意:
85 dic用fromkeys建立方法。若是value值爲list,因全部key指向value值是同一個
86 內存地址,因此,修改list中的值時,全部key都會跟着變動。故value值爲list,
87 修改dic的value時,必須整個list從新賦值,獲取新的內存地址。
88 dic = dict.fromkeys(['k1','k2','k3'],[1,])
89 {
90    k1: 123123213, # [1,2]
91    k2: 123123213, # [1,]
92    k3: 123123213, # [1,]
93 }
94 dic['k1'].append(222)
95 print(dic)
96 '''
View Code

 

七、集合(set)

a. for循環迭代讀取集合


s1 = {"alex",'eric','tony','李泉','李泉11'}
for i in s1:

print(i)

b. 集合的嵌套


s1 = {"alex",'eric','tony','李泉','李泉11',(11,22,33)}
for i in s1:

print(i)

c. 不是太經常使用的set類的方法


isdisjoint     判斷交集,是返回False,否返回True
issubset(x)   判斷 集合s 是不是 集合x 子集
issuperset(x)  判斷 集合x 是不是集合s的子集
pop      隨機刪除並返回集合s中某個值,注意,由於set是無序的,不支持下標操做,沒有所謂的最後一個,pop()移除隨機一個元素,這和其餘數據結構不一樣
remove 將 x 從集合s中移除,若x不存在,會引起錯誤

d. 代碼示例詳解

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Shu Yang Wang
 4 
 5 '''
 6 set 集合
 7 不可重複的列表,屬於可變類型
 8 '''
 9 
10 '''
11 a. 建立
12 s1 = {"alex",'eric','tony','李泉','李泉11'}
13 s2 = {"alex",'eric','tony','劉一'}
14 '''
15 
16 '''
17 b. s1中存在,s2中不存在
18 '''
19 s1 = {"alex",'eric','tony','李泉','李泉11'}
20 s2 = {"alex",'eric','tony','劉一'}
21 v = s1.difference(s2)
22 print('s1中存在,s2中不存在', v)
23 
24 '''
25 c. s1中存在,s2中不存在
26 '''
27 s1 = {"alex",'eric','tony','李泉','李泉11'}
28 s2 = {"alex",'eric','tony','劉一'}
29 s1.difference(s2)
30 print('s1中存在,s2中不存在', s1)
31 #s1中存在,s2中不存在,而後對s1清空,而後在從新賦值(重要)
32 s1.difference_update(s2)
33 print('s1中存在,s2中不存在,而後對s1清空,而後在從新賦值', s1)
34 
35 '''
36 d. s2中存在,s1中不存在,且s1中存在,s2中不存在,對稱差集
37 '''
38 s1 = {"alex",'eric','tony','李泉','李泉11'}
39 s2 = {"alex",'eric','tony','劉一'}
40 v = s1.symmetric_difference(s2)
41 print('對稱差集', v)
42 # 對稱差集,而後對s1清空,而後在從新賦值
43 s1.symmetric_difference_update(s2)
44 print('對稱差集,而後對s1清空,而後在從新賦值', s1)
45 
46 '''
47 e. 交集
48 '''
49 s1 = {"alex",'eric','tony','李泉','李泉11'}
50 s2 = {"alex",'eric','tony','劉一'}
51 v = s1.intersection(s2)
52 print('交集', v)
53 s1.intersection_update(s2)
54 print('交集,而後對s1清空,而後在從新賦值', s1)
55 
56 '''
57 f. 並集
58 '''
59 s1 = {"alex",'eric','tony','李泉','李泉11'}
60 s2 = {"alex",'eric','tony','劉一'}
61 v = s1.union(s2)
62 print('並集', v)
63 
64 '''
65 g. 移除
66 '''
67 s1 = {"alex",'eric','tony','李泉','李泉11'}
68 s1.discard('alex')
69 print('移除', s1)
70 
71 '''
72 h. 更新
73 '''
74 s1 = {"alex",'eric','tony','李泉','李泉11'}
75 s1.update({'alex','123123','fff'})
76 print('更新', s1)
View Code

 

3、range & enumerate

一、range生成器

a. python2.7: 當即生成全部數字


range(1,11) # 生成 1,23,,4,56.10
range() 當即生成全部數字,在2.7中range()不是生成器
xrange() 不會立生成,迭代以後才一個一個建立;是生成器

b. python3.x: 不會當即生成,只有循環迭代時,才一個一個生成


range() 不會立生成,迭代以後才一個一個建立;是生成器
for i in range(1,11): #1,2,3,4,5,6,7,8,9,10

print(i)


c. range(開始,結束,步長) range(0,3)== 0,1,2, 可簡寫爲range(3),默認從0開始


參數1: 開始值(int)
參數2: 結束值(int),默認不去
參數3: 步長 -1表示倒着數,可用於反轉(負數同理)

d.代碼示例詳解

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Shu Yang Wang
 4 
 5 '''
 6 a. 請輸出1-10
 7 '''
 8 for i in range(1,11):
 9      print(i)
10 
11 '''
12 b. 取1-10 奇數
13 '''
14 for i in range(1,11,2):
15      print(i)
16 
17 '''
18 c. 取10 - 1 
19 '''
20 for i in range(10,0,-1):
21      print(i)
22 
23 '''
24 d. list花式使用
25 '''
26 li = ['eric','alex','tony']
27 for i in range(0,len(li)):
28     ele = li[i]
29     print(ele)
30 
31 for i in range(0,len(li)):
32     print(i + 1, li[i])
View Code

 

 

二、enumerate

enumerate()額外生成一列有序的數字
參數1:可迭代對象
參數2:開始值定製

a.代碼示例詳解

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Shu Yang Wang
 4 
 5 '''
 6 enumerate額外生成一列有序的數字
 7 '''
 8 
 9 '''
10 使用1:list加序號
11 '''
12 li = ['eric','alex','tony']
13 for i,ele in enumerate(li,1):
14     print(i, ele)
15 
16 v = input('請輸入商品序號:')
17 v = int(v)
18 item = li[v-1]
19 print(item)
View Code
相關文章
相關標籤/搜索