-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPythonNote.html
More file actions
3896 lines (3524 loc) · 495 KB
/
Copy pathPythonNote.html
File metadata and controls
3896 lines (3524 loc) · 495 KB
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
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE HTML>
<html lang="zh-hans" >
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Python基础 · NOTEBOOK</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<meta name="author" content="STOLENZC">
<link rel="stylesheet" href="gitbook/style.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-search-pro/search.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-splitter/splitter.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-code/plugin.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-prism/prism.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-anchor-navigation-ex/style/plugin.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-intopic-toc/style.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-tbfed-pagefooter/footer.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-expandable-chapters/expandable-chapters.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-theme-comscore/test.css">
<link rel="stylesheet" href="styles/website.css">
<meta name="HandheldFriendly" content="true"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
<link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
<link rel="next" href="RedisNote.html" />
<link rel="prev" href="Project.html" />
</head>
<body>
<div class="book">
<div class="book-summary">
<div id="book-search-input" role="search">
<input type="text" placeholder="输入并搜索" />
</div>
<nav role="navigation">
<ul class="summary">
<li>
<a href="https://blog.stolenzc.com" target="_blank" class="custom-link">博客主页</a>
</li>
<li>
<a href="https://tools.stolenzc.com" target="_blank" class="custom-link">快捷工具</a>
</li>
<li class="divider"></li>
<li class="chapter " data-level="1.1" data-path="./">
<a href="./">
简介
</a>
</li>
<li class="chapter " data-level="1.2" data-path="AlgorithmNote.html">
<a href="AlgorithmNote.html">
算法
</a>
</li>
<li class="chapter " data-level="1.3" data-path="DataAnalysis.html">
<a href="DataAnalysis.html">
数据分析
</a>
</li>
<li class="chapter " data-level="1.4" data-path="GoNote.html">
<a href="GoNote.html">
Go笔记
</a>
</li>
<li class="chapter " data-level="1.5" data-path="JavaScriptNote.html">
<a href="JavaScriptNote.html">
前端
</a>
</li>
<li class="chapter " data-level="1.6" data-path="KubernetesNote.html">
<a href="KubernetesNote.html">
K8s
</a>
</li>
<li class="chapter " data-level="1.7" data-path="LinuxNote.html">
<a href="LinuxNote.html">
Linux
</a>
</li>
<li class="chapter " data-level="1.8" data-path="MysqlNote.html">
<a href="MysqlNote.html">
MySQL
</a>
</li>
<li class="chapter " data-level="1.9" data-path="Project.html">
<a href="Project.html">
项目
</a>
</li>
<li class="chapter active" data-level="1.10" data-path="PythonNote.html">
<a href="PythonNote.html">
Python基础
</a>
</li>
<li class="chapter " data-level="1.11" data-path="RedisNote.html">
<a href="RedisNote.html">
Redis
</a>
</li>
<li class="chapter " data-level="1.12" data-path="SoftManual.html">
<a href="SoftManual.html">
软件使用
</a>
</li>
<li class="chapter " data-level="1.13" >
<span>
读书笔记
</span>
<ul class="articles">
<li class="chapter " data-level="1.13.1" data-path="reading/effective_python.html">
<a href="reading/effective_python.html">
《Effective Python:编写高质量Python代码的90个有效方法》要点文摘
</a>
</li>
</ul>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
本书使用 GitBook 发布
</a>
</li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<!-- Title -->
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i>
<a href="." >Python基础</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<div id="book-search-results">
<div class="search-noresults">
<section class="normal markdown-section">
<a href="#1-入门基础" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a><h1 id="1-入门基础"><a name="1-入门基础" class="anchor-navigation-ex-anchor" href="#1-入门基础"><i class="fa fa-link" aria-hidden="true"></i></a>1 入门基础</h1>
<h2 id="11-pycharm快捷使用"><a name="11-pycharm快捷使用" class="anchor-navigation-ex-anchor" href="#11-pycharm快捷使用"><i class="fa fa-link" aria-hidden="true"></i></a>1.1 Pycharm快捷使用</h2>
<ul>
<li><code>ctr + /</code> - 添加注释和取消注释</li>
<li><code>ctr + shift + z</code> - 反撤销</li>
<li><code>alt + Enter</code> - 快速导包</li>
</ul>
<h2 id="12-基础变量与运算符"><a name="12-基础变量与运算符" class="anchor-navigation-ex-anchor" href="#12-基础变量与运算符"><i class="fa fa-link" aria-hidden="true"></i></a>1.2 基础/变量与运算符</h2>
<h3 id="121-注释"><a name="121-注释" class="anchor-navigation-ex-anchor" href="#121-注释"><i class="fa fa-link" aria-hidden="true"></i></a>1.2.1 注释</h3>
<ol>
<li>单行注释: 在注释性文字的开头加#</li>
<li>多行注释: 用三个单引号或者三个双引号引起来</li>
</ol>
<h3 id="122-语句"><a name="122-语句" class="anchor-navigation-ex-anchor" href="#122-语句"><i class="fa fa-link" aria-hidden="true"></i></a>1.2.2 语句</h3>
<ol>
<li>一条语句占一行,语句结束的时候不用写分号;如果一行写多条语句,语句之间必须用分号隔开</li>
<li><p>如果一条语句的长度超过一定范围需要换行显示,就换行位置前加\ (<strong>注意</strong>: \的位置不能破坏数据)</p>
<pre class="language-"><code class="lang-python"> result <span class="token operator">=</span> <span class="token number">789789798798798</span> <span class="token operator">+</span> <span class="token number">378923498732</span> \
<span class="token operator">-</span> <span class="token number">37489172348</span> <span class="token operator">*</span> <span class="token number">32471827349</span> <span class="token operator">/</span>\
<span class="token number">1203472893</span> <span class="token operator">+</span> <span class="token number">2873498237</span>
</code></pre>
</li>
<li><p>行和缩进</p>
<ol>
<li>一条语句的前面不能随意添加空格或缩进</li>
<li>有的时候语句的前面必须有一个缩进(四个空格表示一级缩进-PEP8规范)</li>
</ol>
</li>
</ol>
<h3 id="123-标识符命名规范"><a name="123-标识符命名规范" class="anchor-navigation-ex-anchor" href="#123-标识符命名规范"><i class="fa fa-link" aria-hidden="true"></i></a>1.2.3 标识符(命名规范)</h3>
<p>要求: 由字母、数字和下划线组成,并且数字不能开头(<strong>注意</strong>: 其实标识符可以包含中文,但是不要这样做)</p>
<p>PEP8规范:</p>
<ul>
<li><strong>变量</strong> - 所有字母都小写,如果有多个单词单词之间用下划线隔开</li>
<li><strong>函数名</strong> - 应该小写,如果想提高可读性可以用下划线分隔。</li>
<li><strong>类名</strong> - 一般使用首字母大写的约定。</li>
<li><strong>常量</strong> - 通常定义在模块级,通过下划线分隔的全大写字母命名。</li>
</ul>
<h3 id="124-关键字"><a name="124-关键字" class="anchor-navigation-ex-anchor" href="#124-关键字"><i class="fa fa-link" aria-hidden="true"></i></a>1.2.4 关键字</h3>
<p>截止 Python3.12 总共有35个关键字,且额外有 4 个软关键字(仅在特定上下文中被保留)</p>
<p><a href="https://docs.python.org/zh-cn/3/reference/lexical_analysis.html#keywords" target="_blank">关键字</a></p>
<p>关键字查看方法:</p>
<pre class="language-"><code class="lang-python"><span class="token keyword">import</span> keyword
<span class="token keyword">print</span><span class="token punctuation">(</span>keyword<span class="token punctuation">.</span>kwlist<span class="token punctuation">)</span>
</code></pre>
<p>"""
False await else import pass
None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield
"""</p>
<p>软关键字</p>
<ul>
<li><code>match</code>, <code>case</code> 和 <code>_</code> 是在 <code>match</code> 语句中使用 (Python3.10 添加)</li>
<li><code>type</code> 是在 <code>type</code> 语句中使用 (Python3.12 添加)</li>
</ul>
<h2 id="13-内置函数"><a name="13-内置函数" class="anchor-navigation-ex-anchor" href="#13-内置函数"><i class="fa fa-link" aria-hidden="true"></i></a>1.3 内置函数</h2>
<p>内置函数官方文档参考 <a href="https://docs.python.org/zh-cn/3/library/functions.html#built-in-functions" target="_blank">内置函数</a></p>
<h3 id="数据类型转换"><a name="数据类型转换" class="anchor-navigation-ex-anchor" href="#数据类型转换"><i class="fa fa-link" aria-hidden="true"></i></a>数据类型转换</h3>
<ul>
<li><code>bool()</code> - 布尔类型</li>
<li><code>int()</code> - 整数类型</li>
<li><code>float()</code> - 浮点型</li>
<li><code>complex()</code> - 复数</li>
<li><code>str()</code> - 将数据转换为字符串</li>
<li><code>bytes()</code> - 将字符串类型转换为bytes类型</li>
<li><code>list()</code> - 将可迭代对象转换为列表</li>
<li><code>tuple()</code> - 将可迭代对象转换为元组</li>
<li><code>dict()</code> - 创建一个字典</li>
<li><code>set()</code> - 创建一个集合</li>
<li><code>frozenset()</code> - 创建一个冻结的集合,不能进行添加删除</li>
<li><code>isinstance()</code> - 判断一个对象是否是一个已知的类型</li>
<li><code>issubclass()</code> - 判断一个类是否是另一个类的子类</li>
</ul>
<h3 id="数学运算"><a name="数学运算" class="anchor-navigation-ex-anchor" href="#数学运算"><i class="fa fa-link" aria-hidden="true"></i></a>数学运算</h3>
<ul>
<li><code>abs()</code> - 返回绝对值</li>
<li><code>divmod()</code> - 返回商和余数</li>
<li><code>round()</code> - 四舍五入</li>
<li><code>pow(a, b)</code> - 求a的b次幂,如果有第三个参数,则求完后再取幂</li>
<li><code>sum()</code> - 求和</li>
<li><code>min()</code> - 最小值</li>
<li><code>max()</code> - 最大值</li>
</ul>
<pre class="language-"><code class="lang-python"><span class="token builtin">abs</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">)</span> <span class="token comment"># 2</span>
<span class="token builtin">divmod</span><span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span> <span class="token comment"># (6, 2)</span>
<span class="token builtin">round</span><span class="token punctuation">(</span><span class="token number">4.6</span><span class="token punctuation">)</span> <span class="token comment"># 5</span>
<span class="token builtin">pow</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token comment"># 100</span>
<span class="token builtin">pow</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span> <span class="token comment"># 1</span>
<span class="token builtin">sum</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token comment"># 15</span>
<span class="token builtin">min</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token comment"># 1</span>
<span class="token builtin">max</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token comment"># 5</span>
</code></pre>
<h3 id="数据结构"><a name="数据结构" class="anchor-navigation-ex-anchor" href="#数据结构"><i class="fa fa-link" aria-hidden="true"></i></a>数据结构</h3>
<ul>
<li><code>reversed()</code> - 将序列翻转,返回翻转序列的迭代器,不改变原序列</li>
<li><code>slice()</code> - 列表的切片</li>
<li><code>format()</code> - 格式化字符串<ul>
<li><code><</code> - 左对齐</li>
<li><code>></code> - 右对齐</li>
<li><code>^</code> - 居中对齐</li>
<li><code>=</code> - 将填充放在符号之后数字之前</li>
<li><code>+</code> - 表示正负数都应该使用一个符号</li>
<li><code>-</code> - 表示只有负数应该用一个符号</li>
<li><code>空格</code> - 表示正数前用空格,负数前用负号</li>
</ul>
</li>
<li><code>ord()</code> - 输入字符,返回字符编码</li>
<li><code>chr()</code> - 输入字符编码,返回字符</li>
<li><code>ascii()</code> - 是ascii码中的返回该值,不是就返回u</li>
<li><code>repr()</code> - 返回一个对象的string形式</li>
</ul>
<pre class="language-"><code class="lang-python">lst <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span>
<span class="token builtin">reversed</span><span class="token punctuation">(</span>lst<span class="token punctuation">)</span> <span class="token comment"># [3, 2, 1]</span>
s <span class="token operator">=</span> <span class="token builtin">slice</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span>
lst<span class="token punctuation">[</span>s<span class="token punctuation">]</span> <span class="token comment"># [2]</span>
s <span class="token operator">=</span> <span class="token string">'hello'</span>
<span class="token builtin">format</span><span class="token punctuation">(</span>s<span class="token punctuation">,</span> <span class="token string">'<10'</span><span class="token punctuation">)</span> <span class="token comment"># ' hello'</span>
<span class="token builtin">format</span><span class="token punctuation">(</span>s<span class="token punctuation">,</span> <span class="token string">'>10'</span><span class="token punctuation">)</span> <span class="token comment"># 'hello '</span>
<span class="token builtin">format</span><span class="token punctuation">(</span>s<span class="token punctuation">,</span> <span class="token string">'^10'</span><span class="token punctuation">)</span> <span class="token comment"># ' hello '</span>
<span class="token builtin">format</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">'=5'</span><span class="token punctuation">)</span> <span class="token comment"># '- 5'</span>
<span class="token builtin">format</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">'+'</span><span class="token punctuation">)</span> <span class="token comment"># '+5'</span>
<span class="token builtin">format</span><span class="token punctuation">(</span><span class="token operator">+</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">'-'</span><span class="token punctuation">)</span> <span class="token comment"># '5'</span>
<span class="token builtin">format</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">' '</span><span class="token punctuation">)</span> <span class="token comment"># ' 5'</span>
</code></pre>
<h3 id="迭代器操作函数"><a name="迭代器操作函数" class="anchor-navigation-ex-anchor" href="#迭代器操作函数"><i class="fa fa-link" aria-hidden="true"></i></a>迭代器操作函数</h3>
<ul>
<li><code>iter()</code> - 生成迭代器</li>
<li><code>next()</code> - 获取下一个值</li>
<li><code>aiter()</code> - 异步迭代器</li>
<li><code>anext()</code> - 异步获取下一个值</li>
<li><code>enumerate()</code> - 返回一个枚举对象,同时列出数据和数据下标,一般用在 for 循环当中</li>
<li><code>all()</code> - 判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False</li>
<li><code>any()</code> - 判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True</li>
<li><code>filter()</code> - 用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象</li>
<li><code>map()</code> - 根据提供的函数对指定序列做映射</li>
<li></li>
</ul>
<h3 id="输入输出函数"><a name="输入输出函数" class="anchor-navigation-ex-anchor" href="#输入输出函数"><i class="fa fa-link" aria-hidden="true"></i></a>输入输出函数</h3>
<ol>
<li><p>输出函数: <code>print(内容)</code></p>
<ol>
<li>end的用法 <code>print(需要打印的内容, end='结束后的打印')</code></li>
<li><p>sep的用法 <code>print(需要打印的内容, sep='分隔的符号')</code></p>
<pre class="language-"><code class="lang-python"><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">111</span><span class="token punctuation">,</span> <span class="token number">222</span><span class="token punctuation">,</span> sep<span class="token operator">=</span><span class="token string">'+'</span><span class="token punctuation">,</span> end<span class="token operator">=</span><span class="token string">';\n'</span><span class="token punctuation">)</span> <span class="token comment">#100+111+222;\n</span>
</code></pre>
</li>
</ol>
</li>
<li><p>输入函数:<code>input(屏幕提示信息)</code></p>
<p> 注意: python2中应该使用<code>raw_input</code>,python2中<code>input</code>会用<code>eval</code>进行计算</p>
</li>
</ol>
<h3 id="进制转换"><a name="进制转换" class="anchor-navigation-ex-anchor" href="#进制转换"><i class="fa fa-link" aria-hidden="true"></i></a>进制转换</h3>
<p>二进制:</p>
<ul>
<li>表示方法: 加前缀0b或0B, 例如 <code>0b1010</code></li>
<li>转换方式: <code>bin(数字)</code></li>
</ul>
<p>八进制:</p>
<ul>
<li>表示方法: 加前缀0o或0O, 例如 <code>0o12</code></li>
<li>转换方式: <code>oct(数字)</code></li>
</ul>
<p>十六进制:</p>
<ul>
<li>表示方法: 加前缀0x或0X, 例如 <code>0xa</code></li>
<li>转换方式: <code>hex(数字)</code></li>
</ul>
<p>二进制和字符串的转换:</p>
<ul>
<li>字符串转二进制: <code>bytes(字符串, encoding='utf-8')</code> / <code>字符串.encode()</code></li>
<li>二进制转字符串: <code>str(二进制, encoding='utf-8')</code> / <code>二进制.decode(encoding='utf-8')</code></li>
</ul>
<h3 id="原码反码和补码"><a name="原码反码和补码" class="anchor-navigation-ex-anchor" href="#原码反码和补码"><i class="fa fa-link" aria-hidden="true"></i></a>原码反码和补码</h3>
<p>正数的原码反码和补码都是一样</p>
<p>90(10) -> 01011010(原码) -> 01011010(反码) -> 01011010(补码)</p>
<p>负数的原码是其绝对值的原码最高位(符号位)变为一</p>
<p>反码是符号位不变,其余位取反</p>
<p>补码是反码加一</p>
<p>-90(10) -> 1 1011010(原码) -> 10100101(反码) -> 10100110(补码)</p>
<h3 id="变量声明"><a name="变量声明" class="anchor-navigation-ex-anchor" href="#变量声明"><i class="fa fa-link" aria-hidden="true"></i></a>变量声明</h3>
<ol>
<li>同时声明多个变量赋相同的值: 变量名1 = 变量名2 = ... = 值</li>
<li>同时声明多个变量赋不同的值: 变量名1, 变量名2,... = 值1, 值2,...</li>
</ol>
<p>变量三要素: 值、地址、类型</p>
<ol>
<li><code>id(变量/数据)</code> - 获取变量/数据的地址</li>
<li><code>type(变量/数据)</code> - 获取变量/数据的类型</li>
</ol>
<h3 id="运算符"><a name="运算符" class="anchor-navigation-ex-anchor" href="#运算符"><i class="fa fa-link" aria-hidden="true"></i></a>运算符</h3>
<h4 id="数学运算符"><a name="数学运算符" class="anchor-navigation-ex-anchor" href="#数学运算符"><i class="fa fa-link" aria-hidden="true"></i></a>数学运算符</h4>
<p><code>+(加), -(减), *(乘), /(乘), %(取余), //(整除), **(幂运算)</code></p>
<h4 id="比较运算符"><a name="比较运算符" class="anchor-navigation-ex-anchor" href="#比较运算符"><i class="fa fa-link" aria-hidden="true"></i></a>比较运算符</h4>
<ul>
<li><code>></code> - 大于</li>
<li><code><</code> - 小于</li>
<li><code>>=</code> - 大于等于</li>
<li><code><=</code> - 小于等于</li>
<li><code>==</code> - 等于</li>
<li><code>!=</code> - 不等于</li>
</ul>
<p>注意:</p>
<ul>
<li>所有的比较运算符的运算结果都是布尔值</li>
<li>is判断的是数据的地址是否相等</li>
<li><code>==</code>判断的是数据的值是否相等</li>
</ul>
<h4 id="逻辑运算符"><a name="逻辑运算符" class="anchor-navigation-ex-anchor" href="#逻辑运算符"><i class="fa fa-link" aria-hidden="true"></i></a>逻辑运算符</h4>
<ul>
<li><code>and</code> - 逻辑与运算</li>
<li><code>or</code> - 逻辑或运算</li>
<li><code>not</code> - 逻辑非运算</li>
</ul>
<p>注意:</p>
<ul>
<li>所有的逻辑运算符的运算结果都是布尔值</li>
</ul>
<p>逻辑运算符的短路:</p>
<ul>
<li>and的短路操作: and前面的条件如果是False, 那么and后面的条件语句不会执行</li>
<li>or的短路操作: or前面的条件如果是True,那么or后面的条件语句不会执行</li>
</ul>
<h4 id="逻辑运算符的数字运算"><a name="逻辑运算符的数字运算" class="anchor-navigation-ex-anchor" href="#逻辑运算符的数字运算"><i class="fa fa-link" aria-hidden="true"></i></a>逻辑运算符的数字运算</h4>
<pre class="language-"><code class="lang-python"><span class="token triple-quoted-string string">"""
num1 and num2 - 如果num1是0结果就是0,如果num1不为0结果是num2
num1 or num2 - 如果num1为0结果就是num2, 如果num1不为0结果就是num1
"""</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token number">6</span> <span class="token keyword">and</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">10</span> <span class="token keyword">and</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">0</span> <span class="token keyword">and</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span> <span class="token keyword">and</span> <span class="token number">4</span><span class="token punctuation">)</span> <span class="token comment">#7 1 0 4</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token number">4</span> <span class="token keyword">or</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">2</span> <span class="token keyword">or</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">0</span> <span class="token keyword">or</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token comment">#4 2 2</span>
</code></pre>
<h4 id="赋值运算符"><a name="赋值运算符" class="anchor-navigation-ex-anchor" href="#赋值运算符"><i class="fa fa-link" aria-hidden="true"></i></a>赋值运算符</h4>
<p><code>=, +=, -=, *=, /=, %=, **=</code></p>
<ol>
<li><p><code>变量 = 值</code> - 将后面的值赋给左边的变量</p>
<p> <strong>注意</strong>: 如果值是已经赋值过的变量,它将是将地址赋给变量</p>
</li>
<li><p><code>+=, -=, *=, /=, %=, **=</code></p>
<p> <code>变量 += 值</code> -> <code>变量 = 变量 + 值</code></p>
</li>
</ol>
<h4 id="位运算"><a name="位运算" class="anchor-navigation-ex-anchor" href="#位运算"><i class="fa fa-link" aria-hidden="true"></i></a>位运算</h4>
<ul>
<li><code>&</code> - 按位与</li>
<li><code>|</code> - 按位或</li>
<li><code>^</code> - 按位异或</li>
<li><code>~</code> - 按位取反</li>
<li><code>>></code> - 右移运算符</li>
<li><code><<</code> - 左移运算符</li>
</ul>
<h4 id="成员运算符"><a name="成员运算符" class="anchor-navigation-ex-anchor" href="#成员运算符"><i class="fa fa-link" aria-hidden="true"></i></a>成员运算符</h4>
<ul>
<li><code>in</code> - 如果在指定的序列中找到了值返回True,否则返回False</li>
<li><code>not in</code> - 如果在指定的序列中找到了值返回False,否则返回True</li>
</ul>
<h4 id="身份运算符"><a name="身份运算符" class="anchor-navigation-ex-anchor" href="#身份运算符"><i class="fa fa-link" aria-hidden="true"></i></a>身份运算符</h4>
<ul>
<li><code>is</code> - 判断两个标识符是不是引用一个对象,判断地址是否一样</li>
<li><code>is not</code> - 判断两个标识符是不是引用不同的对象</li>
</ul>
<h4 id="运算顺序"><a name="运算顺序" class="anchor-navigation-ex-anchor" href="#运算顺序"><i class="fa fa-link" aria-hidden="true"></i></a>运算顺序</h4>
<p>优先级从高到低: 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算</p>
<pre class="language-"><code class="lang-python">运算符优先级
<span class="token operator">**</span>
<span class="token operator">~</span> <span class="token operator">+</span> —<span class="token punctuation">(</span>正负号<span class="token punctuation">)</span>
<span class="token operator">*</span> <span class="token operator">/</span> <span class="token operator">%</span> <span class="token operator">//</span>
<span class="token operator">+</span> <span class="token operator">-</span>
<span class="token operator">>></span> <span class="token operator"><<</span>
<span class="token operator">&</span>
<span class="token operator">^</span> <span class="token operator">|</span>
<span class="token operator"><=</span> <span class="token operator"><</span> <span class="token operator">></span> <span class="token operator">>=</span>
<span class="token operator">==</span> <span class="token operator">!=</span>
<span class="token operator">=</span> <span class="token operator">%=</span> <span class="token operator">+=</span> <span class="token operator">-=</span> <span class="token operator">//=</span> <span class="token operator">/=</span>
<span class="token keyword">is</span> <span class="token keyword">is</span> <span class="token keyword">not</span>
<span class="token keyword">in</span> <span class="token keyword">not</span> <span class="token keyword">in</span>
<span class="token keyword">not</span> <span class="token keyword">or</span> <span class="token keyword">and</span>
</code></pre>
<h1 id="python语法结构"><a name="python语法结构" class="anchor-navigation-ex-anchor" href="#python语法结构"><i class="fa fa-link" aria-hidden="true"></i></a>python语法结构</h1>
<h2 id="for循环"><a name="for循环" class="anchor-navigation-ex-anchor" href="#for循环"><i class="fa fa-link" aria-hidden="true"></i></a>for循环</h2>
<pre class="language-"><code class="lang-python"><span class="token keyword">for</span> 变量名 <span class="token keyword">in</span> 序列<span class="token punctuation">:</span>
循环体
</code></pre>
<p>range函数:</p>
<p><code>range(M, N, step)</code> - 从M开始,每次加step产生下一个数字,到N为止(不包括N),M默认为0,可省略,step默认为1,可省略。</p>
<h2 id="while循环"><a name="while循环" class="anchor-navigation-ex-anchor" href="#while循环"><i class="fa fa-link" aria-hidden="true"></i></a>while循环</h2>
<pre class="language-"><code class="lang-python"><span class="token keyword">while</span> 条件语句<span class="token punctuation">:</span>
循环体
</code></pre>
<h2 id="if分之"><a name="if分之" class="anchor-navigation-ex-anchor" href="#if分之"><i class="fa fa-link" aria-hidden="true"></i></a>if分之</h2>
<pre class="language-"><code class="lang-python"><span class="token keyword">if</span> 条件语句<span class="token number">1</span><span class="token punctuation">:</span>
代码段<span class="token number">1</span>
<span class="token keyword">elif</span> 条件语句<span class="token number">2</span><span class="token punctuation">:</span>
代码段<span class="token number">2</span>
<span class="token keyword">elif</span> 条件语句<span class="token number">3</span><span class="token punctuation">:</span>
代码段<span class="token number">3</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
代码段N
</code></pre>
<h2 id="三目运算符"><a name="三目运算符" class="anchor-navigation-ex-anchor" href="#三目运算符"><i class="fa fa-link" aria-hidden="true"></i></a>三目运算符</h2>
<p><code>值1 if 条件语句 else 值2</code> -> 如果条件语句的结果是True,那么整个运算的结果就是值1,否则是值2</p>
<h2 id="三个关键字"><a name="三个关键字" class="anchor-navigation-ex-anchor" href="#三个关键字"><i class="fa fa-link" aria-hidden="true"></i></a>三个关键字</h2>
<ol>
<li>continue<ul>
<li>continue是循环体中的关键字,只能用在循环体中。用的时候直接用。</li>
<li>执行循环体的时候如果遇到continue,直接结束当次循环,进入下次循环的判断</li>
</ul>
</li>
<li>break<ul>
<li>break是循环体中的关键字,只能用在循环体中;用的时候直接用。</li>
<li>如果在执行循环体的时候遇到了break,那么整个循环直接结束</li>
</ul>
</li>
<li><p>else</p>
<ul>
<li><p>和else关联的循环自然死亡,else后面的代码段会执行;如果循环是因为遇到break而结束,else后面的代码段不会执行</p>
<pre class="language-"><code class="lang-python"><span class="token keyword">for</span> 变量 <span class="token keyword">in</span> 序列<span class="token punctuation">:</span>
循环体
<span class="token keyword">else</span><span class="token punctuation">:</span>
代码段
<span class="token keyword">while</span> 条件语句<span class="token punctuation">:</span>
循环体
<span class="token keyword">else</span><span class="token punctuation">:</span>
代码段
</code></pre>
</li>
</ul>
</li>
</ol>
<h1 id="变量类型"><a name="变量类型" class="anchor-navigation-ex-anchor" href="#变量类型"><i class="fa fa-link" aria-hidden="true"></i></a>变量类型</h1>
<h2 id="数字类型"><a name="数字类型" class="anchor-navigation-ex-anchor" href="#数字类型"><i class="fa fa-link" aria-hidden="true"></i></a>数字类型</h2>
<p>int:整型</p>
<ul>
<li>整型中 -5~256为不可变,其余为可变</li>
</ul>
<p>float:浮点型</p>
<ul>
<li>支持科学计数法(3e4)</li>
</ul>
<p>bool:布尔类型</p>
<ul>
<li>True本质为1,False本质为0</li>
</ul>
<p>complex:复数类型</p>
<ul>
<li>j为虚数单位,<code>j*j=-1</code></li>
</ul>
<h2 id="数据类型相关方法"><a name="数据类型相关方法" class="anchor-navigation-ex-anchor" href="#数据类型相关方法"><i class="fa fa-link" aria-hidden="true"></i></a>数据类型相关方法</h2>
<ol>
<li><code>type(数据)</code> - 获取指定数据类型</li>
<li><code>isinstance(数据, 类型)</code> - 判断指定的数据是否是指定的类型</li>
<li><code>类型(数据)</code> - 将数据转换成指定类型,<code>int()</code> <code>float()</code> <code>bool()</code> <code>str()</code> 等</li>
<li><code>abs(数据)</code> - 取该数据的绝对值</li>
</ol>
<p>任何数据类型的数据都能转换成布尔; 所有为零,为空的值都会转换成False,其他的都是True</p>
<p>为False的时候:</p>
<pre class="language-"><code class="lang-python"><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token number">0.00</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token builtin">bool</span><span class="token punctuation">(</span><span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre>
<h2 id="random随机数"><a name="random随机数" class="anchor-navigation-ex-anchor" href="#random随机数"><i class="fa fa-link" aria-hidden="true"></i></a>Random随机数</h2>
<p>需要先<code>import random</code></p>
<ol>
<li>随机挑选<ul>
<li><code>random.choice(序列)</code> - 在序列中随机挑选出一个元素</li>
</ul>
</li>
<li>在指定范围内取一个随机数<ul>
<li><code>random.randrange(开始, 结束, 步长)</code></li>
<li><code>random.randrange(结束)</code> - 从0到结束之间选取一个随机数</li>
</ul>
</li>
<li>产生[0, 1)的随机数<ul>
<li><code>random.random()</code></li>
</ul>
</li>
<li>随机排序<ul>
<li><code>random.shuffle(列表)</code> - 将列表中的元素随机排序(序列必须是可变的)</li>
</ul>
</li>
<li>产生随机浮点数<ul>
<li><code>random.uniform(m, n)</code> - 产生[m, n]的随机浮点数</li>
</ul>
</li>
<li>产生随机整数<ul>
<li><code>random.randint(m, n)</code> - 产生[m, n]的随机整数</li>
</ul>
</li>
</ol>
<h2 id="数学方法"><a name="数学方法" class="anchor-navigation-ex-anchor" href="#数学方法"><i class="fa fa-link" aria-hidden="true"></i></a>数学方法</h2>
<pre class="language-"><code class="lang-python"><span class="token keyword">import</span> math
<span class="token comment">#向上取整(得19)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span><span class="token number">18.1</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span><span class="token number">18.9</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment">#向下取整(得18)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>floor<span class="token punctuation">(</span><span class="token number">18.1</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>floor<span class="token punctuation">(</span><span class="token number">18.9</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment">#返回整数部分和小数部分(小数在前,整数在后)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>modf<span class="token punctuation">(</span><span class="token number">12.8</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># 0.8 12.0</span>
<span class="token comment">#开平方</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>sqrt<span class="token punctuation">(</span><span class="token number">16</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre>
<h2 id="列表list"><a name="列表list" class="anchor-navigation-ex-anchor" href="#列表list"><i class="fa fa-link" aria-hidden="true"></i></a>列表list</h2>
<h3 id="获取列表元素"><a name="获取列表元素" class="anchor-navigation-ex-anchor" href="#获取列表元素"><i class="fa fa-link" aria-hidden="true"></i></a>获取列表元素</h3>
<ol>
<li><p>获取单个元素</p>
<p> <code>列表[下标]</code> - 获取列表中指定下标对应的元素</p>
<ul>
<li>0 ~ 长度-1(从前往后取)</li>
<li>-1 ~ -长度(从后往前取)</li>
<li>0表示第一个元素, -1表示最后一个元素</li>
</ul>
</li>
<li><p>获取部分元素(列表切片)</p>
<ul>
<li><code>列表[start:end:step]</code> - 从开始下标开始取,每次下标值增加步长去取下一个元素,直到取到结束下标前一个元素为止。返回的数据一定是列表</li>
<li><code>列表[start:end]</code> - 步长为1</li>
<li>列表[:结束下标:步长] / 列表[:结束下标]<ul>
<li>步长为正,从下标为0开始;步长为负,从最后一个元素开始</li>
</ul>
</li>
<li>省略结束下标: 列表[start::step] / 列表[start:]<ul>
<li>步长为正,取到最后一个元素为止;步长为负,取到第一个元素为止</li>
</ul>
</li>
<li>开始下标和结束下标都省略: 列表[::step] / 列表[:]</li>
</ul>
</li>
</ol>
<h3 id="遍历列表"><a name="遍历列表" class="anchor-navigation-ex-anchor" href="#遍历列表"><i class="fa fa-link" aria-hidden="true"></i></a>遍历列表</h3>
<ol>
<li><p>直接遍历元素</p>
<pre class="language-"><code class="lang-python"> <span class="token keyword">for</span> 元素 <span class="token keyword">in</span> 列表<span class="token punctuation">:</span>
<span class="token keyword">pass</span>
</code></pre>
<ul>
<li>变量取到的就是列表中的每个元素</li>
</ul>
</li>
<li><p>通过遍历下标来遍历列表元素</p>
<pre class="language-"><code class="lang-python"> <span class="token keyword">for</span> 下标 <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span>列表长度<span class="token punctuation">)</span><span class="token punctuation">:</span>
元素 <span class="token operator">=</span> 列表<span class="token punctuation">[</span>下标<span class="token punctuation">]</span>
</code></pre>
<ul>
<li>获取列表长度: <code>len(列表)</code></li>
</ul>
</li>
<li><p>同时获取值和下标</p>
<pre class="language-"><code class="lang-python"> <span class="token keyword">for</span> 下标<span class="token punctuation">,</span> 元素值 <span class="token keyword">in</span> <span class="token builtin">enumerate</span><span class="token punctuation">(</span>列表<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">pass</span>
</code></pre>
</li>
</ol>
<h3 id="增加元素"><a name="增加元素" class="anchor-navigation-ex-anchor" href="#增加元素"><i class="fa fa-link" aria-hidden="true"></i></a>增加元素</h3>
<ul>
<li><code>列表.append(元素)</code> - 在列表的最后中添加指定的元素。(直接影响原列表不会产生新的列表)</li>
<li><code>列表.insert(下标, 元素)</code> - 在列表指定下标前插入指定的元素</li>
<li><code>list.extend([元素1,元素2])</code> - 在list列表末端拆分增加多个元素;传入必须是数据容器</li>
</ul>
<h3 id="删除元素"><a name="删除元素" class="anchor-navigation-ex-anchor" href="#删除元素"><i class="fa fa-link" aria-hidden="true"></i></a>删除元素</h3>
<ul>
<li><code>del 列表[下标]</code> - 删除列表中指定下标对应的元素 (<code>del 列表</code> - 删除列表)</li>
<li><code>列表.remove(元素)</code> - 删除列表中指定的元素(如果这个元素有多个只删第一个)</li>
<li><code>列表.pop()</code> - 取出列表最后一个元素, 返回被取出的元素</li>
<li><code>列表.pop(下标)</code> - 取出列表中指定下标对应的元素,返回被取出的元素</li>
</ul>
<h3 id="更改元素"><a name="更改元素" class="anchor-navigation-ex-anchor" href="#更改元素"><i class="fa fa-link" aria-hidden="true"></i></a>更改元素</h3>
<p><code>列表[下标] = 新值</code> - 将列表中指定下标对应的元素改成新值</p>
<h3 id="列表的数学运算符"><a name="列表的数学运算符" class="anchor-navigation-ex-anchor" href="#列表的数学运算符"><i class="fa fa-link" aria-hidden="true"></i></a>列表的数学运算符</h3>
<ol>
<li><p><code>列表1 + 列表2</code> - 将两个列表中的元素合并在一个产生一个新的列表</p>
<pre class="language-"><code class="lang-python"> nums1 <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">80</span><span class="token punctuation">]</span>
strs <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'abc'</span><span class="token punctuation">,</span> <span class="token string">'hello'</span><span class="token punctuation">,</span> <span class="token string">'how'</span><span class="token punctuation">,</span> <span class="token string">'are'</span><span class="token punctuation">]</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>nums1 <span class="token operator">+</span> strs<span class="token punctuation">)</span> <span class="token comment"># [100, 10, 80, 'abc', 'hello', 'how', 'are']</span>
</code></pre>
</li>
<li><p><code>列表 * N</code> / <code>N * 列表</code> - 列表中的元素重复N次产生一个新的列表</p>
<pre class="language-"><code class="lang-python"> nums1 <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">80</span><span class="token punctuation">]</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>nums1 <span class="token operator">*</span> <span class="token number">3</span><span class="token punctuation">)</span> <span class="token comment"># [100, 10, 80, 100, 10, 80, 100, 10, 80]</span>
</code></pre>
</li>
</ol>
<h3 id="列表的比较运算符"><a name="列表的比较运算符" class="anchor-navigation-ex-anchor" href="#列表的比较运算符"><i class="fa fa-link" aria-hidden="true"></i></a>列表的比较运算符</h3>
<ol>
<li><p>==, != -> 判断两个列表是相等/不相等(两个列表只有元素个数、元素的值和元素顺序都一样的时候才相等)</p>
<pre class="language-"><code class="lang-python"> list1 <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>list1 <span class="token operator">==</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># True</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>list1 <span class="token keyword">is</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># False</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token keyword">is</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># False</span>
</code></pre>
</li>
<li><p>比较大小</p>
<p> 从第一个元素开始进行比较,ASCII值大的大,类型不同无法比较</p>
</li>
</ol>
<h3 id="列表的in和not-in"><a name="列表的in和not-in" class="anchor-navigation-ex-anchor" href="#列表的in和not-in"><i class="fa fa-link" aria-hidden="true"></i></a>列表的in和not in</h3>
<ul>
<li><code>元素 in 列表</code> - 判断列表中是否存在指定的元素,结果是布尔</li>
<li><code>元素 not in 列表</code> - 判断列表中是否不存在指定的元素,结果是布尔</li>
</ul>
<h3 id="相关函数"><a name="相关函数" class="anchor-navigation-ex-anchor" href="#相关函数"><i class="fa fa-link" aria-hidden="true"></i></a>相关函数</h3>
<ul>
<li><code>len(序列)</code> - 统计序列中元素的个数(迭代器和生成器不行)</li>
<li><code>max(序列)/min(序列)</code> - 求序列中元素的最大值/最小值(迭代器和生成器不行) <strong>注意</strong>: 序列中的元素的类型必须一致,并且支持比较运算符</li>
<li><code>list(数据)</code> - 将指定的数据转换成列表</li>
<li><code>sum(序列)</code> - 求序列中所有元素的和(序列中的元素只能是数字)</li>
</ul>
<h3 id="相关方法"><a name="相关方法" class="anchor-navigation-ex-anchor" href="#相关方法"><i class="fa fa-link" aria-hidden="true"></i></a>相关方法</h3>
<ul>
<li><code>列表.count(元素)</code> - 统计列表中指定元素的个数;返回值是该元素的个数</li>
<li><code>列表.index(元素)</code> - 获取元素在列表中的下标(正值); 如果元素不存在则报错;如果元素有多个只获取第一个的下标</li>
<li><code>列表.reverse()</code> - 反向列表(不会产生新的列表)(改变本身的顺序)</li>
<li><code>列表.clear()</code>/<code>列表名 = []</code> - 清空列表</li>
<li><code>列表.copy()</code> - 复制/拷贝列表中的元素产生一个新的列表, 和'列表[:]'的功能一样。这个拷贝是浅拷贝</li>
<li>对列表中元素排序<ul>
<li><code>列表.sort()</code> - 改变本身的顺序,默认升序,括号中填入<code>reverse=True</code>改为降序 </li>
<li>注意: 列表中的元素类型必须一致,而且元素本身支持比较大小的运算</li>
<li><code>sorted(序列, reverse=True)</code> - 对序列中的元素排序(会产生一个新的列表),默认升序,reverse改为降序</li>
</ul>
</li>
</ul>
<h2 id="元组tuple"><a name="元组tuple" class="anchor-navigation-ex-anchor" href="#元组tuple"><i class="fa fa-link" aria-hidden="true"></i></a>元组tuple</h2>
<h3 id="元组简介"><a name="元组简介" class="anchor-navigation-ex-anchor" href="#元组简介"><i class="fa fa-link" aria-hidden="true"></i></a>元组简介</h3>
<ul>
<li>元组就是不可变的列表(列表中除了增删改,以及 <code>列表.</code> 相关的方法,元组不能用,其他元组和列表一样)</li>
<li>元组是容器型数据类型(序列); 将()作为容器的标志,多个元素用逗号隔开: <code>(元素1,元素2,元素3...)</code></li>
<li>元祖不可变,有序, 若元组的元素为列表,列表可以变</li>
<li>只有一个元素的元组: <code>(元素1,)</code></li>
<li>没有元素的元组: <code>()</code></li>
</ul>
<pre class="language-"><code class="lang-python">Tuple1 <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span><span class="token punctuation">)</span>
Tuple2 <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre>
<p>直接用逗号将多个数据隔开,表示一个元祖</p>
<pre class="language-"><code class="lang-python">Tuple2 <span class="token operator">=</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token string">'abc'</span>
</code></pre>
<h3 id="获取元组元素"><a name="获取元组元素" class="anchor-navigation-ex-anchor" href="#获取元组元素"><i class="fa fa-link" aria-hidden="true"></i></a>获取元组元素</h3>
<ol>
<li><p>让变量的个数和元组中元素的个数保持一致</p>
<pre class="language-"><code class="lang-python"> point <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span>
x<span class="token punctuation">,</span> y<span class="token punctuation">,</span> z <span class="token operator">=</span> point
</code></pre>
</li>
<li><p>用多个变量分别取获取元素的时候,在一个变量前加<code>*</code>(这个变量就变成列表);</p>
<pre class="language-"><code class="lang-python"> tuple5 <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token string">'小明'</span><span class="token punctuation">,</span> <span class="token number">18</span><span class="token punctuation">,</span> <span class="token number">90</span><span class="token punctuation">,</span> <span class="token number">78</span><span class="token punctuation">,</span> <span class="token number">36</span><span class="token punctuation">,</span> <span class="token number">85</span><span class="token punctuation">,</span> <span class="token string">'男'</span><span class="token punctuation">,</span> <span class="token number">180</span><span class="token punctuation">)</span>
name<span class="token punctuation">,</span> <span class="token operator">*</span>scores<span class="token punctuation">,</span> sex<span class="token punctuation">,</span> height <span class="token operator">=</span> tuple5
<span class="token keyword">print</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> scores<span class="token punctuation">,</span> sex<span class="token punctuation">,</span> height<span class="token punctuation">)</span> <span class="token comment"># 小明 [18, 90, 78, 36, 85] 男 180</span>
</code></pre>
</li>
<li><p><code>*</code>的特殊用法2: 拆包</p>
<pre class="language-"><code class="lang-python"> nums <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>nums<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token operator">*</span>nums<span class="token punctuation">)</span> <span class="token comment"># print(1, 2, 3)</span>
</code></pre>
</li>
</ol>
<h3 id="元组方法"><a name="元组方法" class="anchor-navigation-ex-anchor" href="#元组方法"><i class="fa fa-link" aria-hidden="true"></i></a>元组方法</h3>
<ul>
<li><code>del 元组</code> - 删除元组</li>
<li><code>+</code> - 元组连接</li>
<li><code>*</code> - 元组重复</li>
<li><code>in</code>/<code>not in</code> - 判断元素是否在元组中</li>
<li><code>元组名[开始下标:结束下标]</code> - 元组的截取</li>
<li><code>len(元组名)</code> - 返回元组中元素的个数</li>
<li><code>min(元组名)</code> - 返回元组中的最小值</li>
<li><code>max(元组名)</code> - 返回元组中的最大值</li>
<li><code>tuple(列表)</code> - 将列表转换为元组(元素去重)</li>
</ul>
<h2 id="字典dict"><a name="字典dict" class="anchor-navigation-ex-anchor" href="#字典dict"><i class="fa fa-link" aria-hidden="true"></i></a>字典dict</h2>
<h3 id="字典简介"><a name="字典简介" class="anchor-navigation-ex-anchor" href="#字典简介"><i class="fa fa-link" aria-hidden="true"></i></a>字典简介</h3>
<ul>
<li>python中字典使用的是hash方式保存的</li>
<li>用hash码来决定对象的存放的地址</li>
<li>告诉计算机自定义对象如何判断是否重复,需要重写对象的 <code>__hash__</code> 和 <code>__eq__</code> 方法</li>
<li>字典是容器型数据类型(序列); 将{}作为容器的标志,多个元素之间用逗号隔开(元素是键值对): <code>{键1:值1, 键2:值2, ...}</code></li>
<li>字典是键集合和值集合的一个映射,字典的keys()方法返回的就是一个键视图对象,该对象直接支持集合运算</li>
<li>字典是可变的,无序的</li>
<li>键 - 不可变(一般使用字符串),唯一</li>
<li>值 - 任何类型的数据都可以,值可以相同</li>
</ul>
<h3 id="字典查找"><a name="字典查找" class="anchor-navigation-ex-anchor" href="#字典查找"><i class="fa fa-link" aria-hidden="true"></i></a>字典查找</h3>
<ol>
<li><p>获取单个元素</p>
<ul>
<li><code>字典[key]</code> - 获取指定key对应的值,如果key不存在会报错</li>
<li><code>字典.get(key)</code>/<code>字典.get(key, 默认值)</code> - 获取指定key对应的值;如果key不存在不会报错,并且返回默认值(没有默认值返回None)</li>
</ul>
</li>
<li><p>遍历字典</p>
</li>
</ol>
<p>遍历字典取到的是字典中所有的key</p>
<pre class="language-"><code class="lang-python"><span class="token comment">#遍历key</span>
<span class="token keyword">for</span> key <span class="token keyword">in</span> dict1<span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>key<span class="token punctuation">)</span>
<span class="token comment">#遍历value</span>
<span class="token keyword">for</span> value <span class="token keyword">in</span> dict1<span class="token punctuation">.</span>values<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>
<span class="token comment">#同时遍历key和value</span>
<span class="token keyword">for</span> k<span class="token punctuation">,</span> v <span class="token keyword">in</span> dict1<span class="token punctuation">.</span>items<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>k<span class="token punctuation">,</span> v<span class="token punctuation">)</span>
<span class="token comment">#枚举key,并编号</span>
<span class="token keyword">for</span> i<span class="token punctuation">,</span> k2 <span class="token keyword">in</span> <span class="token builtin">enumerate</span><span class="token punctuation">(</span>dict1<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>i<span class="token punctuation">,</span> k2<span class="token punctuation">)</span>
</code></pre>
<h3 id="字典增、改"><a name="字典增、改" class="anchor-navigation-ex-anchor" href="#字典增、改"><i class="fa fa-link" aria-hidden="true"></i></a>字典增、改</h3>
<ul>
<li><code>字典[key] = 值</code> - 当key存在,修改key对应的值;当key不存在,添加'key:值'的键值对</li>
</ul>
<h3 id="字典删除元素"><a name="字典删除元素" class="anchor-navigation-ex-anchor" href="#字典删除元素"><i class="fa fa-link" aria-hidden="true"></i></a>字典删除元素</h3>
<ul>
<li><code>del 字典[key]</code> - 删除字典中指定key对应的键值对</li>
<li><code>字典.pop(key)</code> - 取出字典中指定key对应的值, 返回值就是被取出的值</li>
<li><code>字典.clear()</code> - 删除字典中所有的键值对</li>
<li><code>字典.popitem()</code> - 随机删除字典中的一对键值对</li>
</ul>
<h3 id="字典比较运算符"><a name="字典比较运算符" class="anchor-navigation-ex-anchor" href="#字典比较运算符"><i class="fa fa-link" aria-hidden="true"></i></a>字典比较运算符</h3>
<p>字典不支持: <code>+、*、>, <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>,</span> <span class="token punctuation">></span></span>=, <=</code>; 只支持: <code>==, !=</code></p>
<p>用 <code>==</code> 或 <code>!=</code> 判断时,只判断键值是否相等,与顺序无关</p>
<h3 id="字典的in和not-in"><a name="字典的in和not-in" class="anchor-navigation-ex-anchor" href="#字典的in和not-in"><i class="fa fa-link" aria-hidden="true"></i></a>字典的in和not in</h3>
<ul>
<li><code>键 in 字典</code> - 判断字典中是否存在指定的键</li>