master
/ 5.1.2 切片.ipynb

5.1.2 切片.ipynb @master

341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
d487d71
341084b
d487d71
 
 
 
 
 
 
 
 
 
 
 
 
341084b
d487d71
 
 
 
 
 
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
d487d71
341084b
d487d71
 
341084b
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
 
 
 
 
 
 
 
 
 
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d487d71
341084b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 切片"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "字符串序列及列表、元组和range等序列类型数据都支持切片操作,切片是从一个序列中获取一个<font color=Red>__子序列__</font>,切片结果的<font color=Red>__数据类型与原序列相同__</font>。  \n",
    "切片的方法是:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "seq[start: <font color=Red>__end__</font>: step]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "seq为字符串及列表、元组或range等序列类型数据对象名。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "start:  \n",
    "表示切片开始的位置元素序号,是第一个要返回的元素的索引号,即切片结果包含seq[start]元素。    \n",
    "<font color=Red>__正向索引start缺省值为0__</font>,切片从第一个元素开始时,start可以省略。  \n",
    "逆向索引start缺省值为负的序列长度,即 -len(seq);  \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "还可以这样理解切片,索引指向的是字符之间 ,第一个字符的左侧标为 0,最后一个字符的右侧标为 n ,n 是字符串长度。例如:"
   ]
  },
  {
   "attachments": {
    "e1aeaa07-1bac-4b07-8b35-6044884745d3.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"images/ch5/2.png\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python\n",
      "Hello\n",
      "5\n",
      "Hello \n",
      "6\n"
     ]
    }
   ],
   "source": [
    "s = 'Hello Python!'\n",
    "print(s[6:12])  # 根据序号[6:12]切片,输出字符串'Python!'\n",
    "print(s[:5])    # 'Hello'\n",
    "print(len(s[:5]))\n",
    "print(s[:-7])   # 输出'Hello '\n",
    "print(len(s[:-7]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "end:  \n",
    "表示是切片结束位置元素序号。      \n",
    "正向索引最后一个元素序号为序列长度减1,即: len(seq)-1; 逆向索引最后一个元素序号为 -1; \n",
    "切片结果不包括seq[end]元素,即切片取不到右边界。  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "s = 'Hello Python!'\n",
    "print(s[:-7])    # 从序号-12向后到-7切片,输出'Hello'\n",
    "print(s[-6:-1])  # 输出'ython'\n",
    "print(s[6:-1])   # 混用正负索引,输出'Python'\n",
    "print(len(s))    # 字符串长度12,最后一个元素序号11\n",
    "print(s[:11])    # Hello Pytho,未切取到最后字符 “n!”"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "切片到最后一个元素时,<font color=Red>__end 省略__</font>或<font color=Red>__设为序列长度__</font>(确保取到最后一个元素)。  \n",
    "想返回包含最后一个元素(len(s)-1)的切片时,结束位置的序号end应该设为len(s)或省略结束位置序号,即应该使用切片seq[start: len(s)] 或seq[start: ]。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "s = 'Hello World!'\n",
    "print(len(s))  # 字符串长度12,最后一个元素序号11\n",
    "print(s[:12])  # Hello World!\n",
    "print(s[:])    # Hello World!\n",
    "print(s[6:])   # World!,未切取到最后字符 “!”"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "s = 'Hello World!'\n",
    "print(s[:-7])    # 从序号-12向后到-7切片,输出'Hello'\n",
    "print(s[6:])     # 从序号6向后到最后一个字符切片,输出'World!'\n",
    "print(s[-6:-1])  # 负向索引,不包含右边界元素,输出'World'\n",
    "print(s[6:-1])   # 混用正负索引,输出'World'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "step:  \n",
    "表示取值的步长,默认为1,步长值可以为负值,但<font color=Red>__步长不能为0__</font>。  \n",
    "步长为正时正向切片,<font color=Red>__步长为负时逆向切片__</font>。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "HloWrd\n",
      "el ol!\n"
     ]
    }
   ],
   "source": [
    "s = 'Hello World!'\n",
    "print(s[::2])  # 步长为2,输出序号为偶数的元素,输出'HloWrd'\n",
    "print(s[1::2])  # 步长为2,输出序号为奇数的元素,输出'el ol!'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "设置<font color=Red>__步长为 -1__</font>可实现逆向切片,可用于<font color=Red>__字符串的逆序__</font>。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "s = 'Hello World!'\n",
    "print(s[-1::-1])  # 按步长为-1进行切片,输出'!dlroW olleH'\n",
    "print(s[::-1])    # 按步长为-1进行切片,输出'!dlroW olleH'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 实例 6.3 回文字符串 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "一个字符串,如果各字符逆序排列与原字符串相同,则称为回文,如“12321”、“上海自来水来自海上”,用户输入一个字符串,判断该字符串是否为回文,如是回文输出“True”,否则输出“False”。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "判断输入的字符串是否是回文,可以从前到后将字符串的每一个字符与从后向前每一个字符一一比较,如果都一一相同,则是回文。Python在处理字符串方面有更灵活的方法,可以利用切片方法(s [start: end: step]),令步长step值为-1,从最后一个字符开始,到字符串开始字符结束进行切片,即构造切片s[-1::-1]或s[::-1] ,可以获得反转后的字符串。比较反转后的字符串与原字符串是否相同,相同则是回文。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "s = input()            # 输入一个字符串\n",
    "if s == s[-1::-1]:     # s[-1::-1]将字符串反转,判断反转后是否与原字符串相等\n",
    "    print('True')\n",
    "else:\n",
    "    print('False')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以将其定义为函数,利用比较运算结果为布尔值的特性,直接返回比较运算表达式,避免使用分支语句。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def palindromic(s):\n",
    "    \"\"\"接收一个字符串为参数,判定其是否为回文,返回布尔值。\"\"\"\n",
    "    return s == s[::-1]  # 比较运算结果为布尔值True或False,可直接做为函数返回值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<font face='楷体' color='red' size=5> 练一练1 </font>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。 用户输入一个正整数 n , 编程在一行内从小到大输出小于n的回文素数,数字后后面用一个空格进行分隔。  \n",
    "输入:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬  \n",
    "输入一个正整数  \n",
    "‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬输出:  \n",
    "‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬符合要求的回文素数  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#  补充你的代码\n",
    "def is_prime(n):\n",
    "    \"\"\"判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False\n",
    "    减小判定区间,减少循环次数,提升效率。\n",
    "    \"\"\"\n",
    "    #  补充你的代码\n",
    "\n",
    "\n",
    "def palindromic(num):\n",
    "    \"\"\"接收一个数字为参数,判定其是否为回文数,返回布尔值。\"\"\"\n",
    "    #  补充你的代码\n",
    "    \n",
    "    \n",
    "\n",
    "def output_prime(num):\n",
    "    \"\"\"接收一个正整数num为参数,在一行中从小到大输出小于n的回文素数。函数无返回值\"\"\"\n",
    "    #  补充你的代码\n",
    "    \n",
    "    \n",
    "    \n",
    "# 主函数   \n",
    "if __name__ == \"__main__\":\n",
    "    n = int(input())\n",
    "    output_prime(n)\n",
    "    "
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "测试用例:\n",
    "输入:\n",
    "200\n",
    "输出:\n",
    "2 3 5 7 11 101 131 151 181 191 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "切片的过程是从第一个要返回的元素开始,到第一个不想返回的元素结束。  \n",
    "切片操作会将按照给定的索引和步长,截取序列中的对象组成的新的片段。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 列表类型\n",
    "scores = ['李明', 84, 80, 95, 88, 96, 76, 65, 85, 98, 55]\n",
    "print(scores[5:])       # 从5到序列结束的元素,输出[96, 76, 65, 85, 98, 55]\n",
    "print(scores[1:-1])     # 混用索引[84, 80, 95, 88, 96, 76, 65, 85, 98]\n",
    "print(scores[1::2])     # 步长为2,隔一个,输出[84, 95, 96, 65, 98]\n",
    "print(max(scores[1:]))  # 切片返回除序号0的列表,max返回其最大值\n",
    "print(sum(scores[1:]))  # 利用sum()函数对切片获取的序列求和,输出822\n",
    "# len()获得切片后的列表元素个数,输出切片后的序列元素的平均值82.2\n",
    "print(sum(scores[1:])/len(scores[1:]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<font face='楷体' color='red' size=5> 练一练2 </font>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "列表['李明', 84, 80, 95, 88, 96, 76, 65, 85, 98, 55]中存储的是李明同学若干门课程的成绩。  \n",
    "请按输出示例格式输出该同学的最高分、最低分、总分和平均分。"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "提示:  \n",
    "max()、min()可获得序列的最大值和最小值  \n",
    "sum()可获得序列元素的和  \n",
    "len()可获得序列长度,即元素的个数  \n",
    "注意:  \n",
    "计算成绩和统计时,要略过姓名,可用切片方法实现。\n",
    "输出格式控制可用以下格式,第一个大括号中加入姓名对象,第二个大括号中加入成绩对象:\n",
    "f'{}同学成绩最高分为{}'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 补充你的代码\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "输出示例:\n",
    "李明同学成绩最高分为98\n",
    "李明同学成绩最低分为55\n",
    "李明同学成绩总分为822\n",
    "李明同学平均成绩为82.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# range类型,切片结果仍为range\n",
    "r = range(10)                     # 获得0,1,2,3,4,5,6,7,8,9的序列\n",
    "print(r[3:6])                     # 对range(10)切片,返回新对象range(3, 6)\n",
    "print(sum(r[1::2]))               # 输出序号为奇数的元素的和 25\n",
    "print(sum(r[0::2])/len(r[0::2]))  # 输出序号为偶数的元素的平均值 4.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 包含字符串、数字、元组和列表等多种类型数据的列表\n",
    "# 无论元素是什么,列表切片结果一定是列表\n",
    "\n",
    "cv = ['李明', 35, ('博士','副教授'), [96, 92, 85]]\n",
    "print(cv[2:4])   # 切片得到新列表[('博士', '副教授'), [96, 92, 85]]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<font color=Red>__切片的序号不存在越界的问题,__</font>超出范围的序号或是步长为正时start大于end值时,结果都是空序列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('Hello World!'[100:4])  # 切片得到空字符串''\n",
    "print(cv[10:4])            # 切片得到空列表[]\n",
    "print(cv[10:20])           # 切片得到空列表[]\n",
    "print(range(10)[100:200])  # 从最大序号向后切片到最大序号,结果range(10, 10),空"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实例 6.4 提取身份号码中的日期与性别 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "中国的居民身份证号是一个18个字符的字符串:  \n",
    "第7--14位数字表示出生年、月、日  \n",
    "第17位数字表示性别,奇数表示男性,偶数表示女性。  \n",
    "输入一个合法的身份证号,输出其出生年月日。(注:本书测试所用身份证号是用程序模拟生成的虚拟号码)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "id_number = input()           # 测试数据是合法的18位身份证号\n",
    "year = id_number[6:10]        # 序号6-9的字符串,年份\n",
    "month = id_number[10:12]      # 序号为10-11的字符串,月份\n",
    "date = id_number[12:14]       # 序号为12-13的字符串,日期\n",
    "if id_number[16] in '13579':  # 若第17位数字在'13579'中存在,为奇数\n",
    "    gender = '男'\n",
    "else:\n",
    "    gender = '女'\n",
    "print('出生:  ' + year + '年' + month + '月' + date + '日')  # 字符串拼接\n",
    "print(f'出生:  {year}年{int(month)}月{int(date)}日')         # int()转整数去除前导0\n",
    "print(f'性别:  {gender}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在这个程序中,通过字符串切片id_number[6:10]、id_number[10:12]、id_number[12:14]分别获取出生年份、月份和日期。  \n",
    "在切片时,切分出来的子字符串包括左边界,但不包括右边界。  \n",
    "语句print('出生于'+year+'年'+month+'月'+day+'日')的括号里,采用6个“+”将4个字符串和3个字符串变量拼接成一个新的字符串并输出。  \n",
    "这里也可以用“f”前缀格式化字符串输出,这种方法不限制变量类型,使用更为方便。  \n",
    "此处可用int()函数转为整数,去除月份或日期前导0,保持与身份证上的输出一致。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}