-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpython3_crash4.html
More file actions
227 lines (198 loc) · 15.7 KB
/
python3_crash4.html
File metadata and controls
227 lines (198 loc) · 15.7 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
<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="utf-8" />
<title>[雪峰磁针石博客]python3快速入门教程1 turtle绘图-4选择与随机数</title>
<link rel="stylesheet" href="/theme/css/main.css" />
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="/">python自动化测试人工智能 </a></h1>
<nav><ul>
<li><a href="/category/ba-zi.html">八字</a></li>
<li><a href="/category/ce-shi.html">测试</a></li>
<li><a href="/category/ce-shi-kuang-jia.html">测试框架</a></li>
<li><a href="/category/common.html">common</a></li>
<li><a href="/category/da-shu-ju.html">大数据</a></li>
<li><a href="/category/feng-shui.html">风水</a></li>
<li><a href="/category/ji-qi-xue-xi.html">机器学习</a></li>
<li><a href="/category/jie-meng.html">解梦</a></li>
<li><a href="/category/linux.html">linux</a></li>
<li class="active"><a href="/category/python.html">python</a></li>
<li><a href="/category/shu-ji.html">书籍</a></li>
<li><a href="/category/shu-ju-fen-xi.html">数据分析</a></li>
<li><a href="/category/zhong-cao-yao.html">中草药</a></li>
<li><a href="/category/zhong-yi.html">中医</a></li>
</ul></nav>
</header><!-- /#banner -->
<section id="content" class="body">
<article>
<header>
<h1 class="entry-title">
<a href="/python3_crash4.html" rel="bookmark"
title="Permalink to [雪峰磁针石博客]python3快速入门教程1 turtle绘图-4选择与随机数">[雪峰磁针石博客]python3快速入门教程1 turtle绘图-4选择与随机数</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2018-09-02T10:25:00+08:00">
Published: 日 02 九月 2018
</abbr>
<address class="vcard author">
By <a class="url fn" href="/author/andrew.html">andrew</a>
</address>
<p>In <a href="/category/python.html">python</a>.</p>
</footer><!-- /.post-info --> <h2 id="_1">语法</h2>
<h3 id="if">if语句</h3>
<div class="highlight"><pre><span></span><span class="o">>>></span> <span class="n">x</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">input</span><span class="p">(</span><span class="s2">"Please enter an integer: "</span><span class="p">))</span>
<span class="n">Please</span> <span class="n">enter</span> <span class="n">an</span> <span class="n">integer</span><span class="p">:</span> <span class="mi">42</span>
<span class="o">>>></span> <span class="k">if</span> <span class="n">x</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span>
<span class="o">...</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span>
<span class="o">...</span> <span class="k">print</span><span class="p">(</span><span class="s1">'Negative changed to zero'</span><span class="p">)</span>
<span class="o">...</span> <span class="k">elif</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="o">...</span> <span class="k">print</span><span class="p">(</span><span class="s1">'Zero'</span><span class="p">)</span>
<span class="o">...</span> <span class="k">elif</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="o">...</span> <span class="k">print</span><span class="p">(</span><span class="s1">'Single'</span><span class="p">)</span>
<span class="o">...</span> <span class="k">else</span><span class="p">:</span>
<span class="o">...</span> <span class="k">print</span><span class="p">(</span><span class="s1">'More'</span><span class="p">)</span>
<span class="o">...</span>
<span class="n">More</span>
</pre></div>
<p>可能会有零到多个elif部分,else是可选的。关键字‘elif‘是‘else if’的缩写,可避免过深的缩进。 if ... elif ... elif序列用于替代其它语言中的switch或case语句。python中没有case语言,可以考虑用字典或者elif语句替代。</p>
<h3 id="_2">深入条件控制</h3>
<p>while和if语句中使用的条件可以使用比较,也可包含任意的操作。 </p>
<p>比较操作符 in 和 not in判断值是否包含在序列。操作符 is 和 is not 比较两个对象是否相同,适用于可变对象。所有的比较操作符具有相同的优先级,低于所有的数值操作符。 </p>
<p>比较操作可以串联。例如 a < b == c 判断是否 a 小于 b 并且 b 等于 c 。 </p>
<p>比较操作可以通过逻辑操作符 and 和 or 组合,比较的结果可以用 not 来取反。这些操作符的优先级低于比较操作符,其中not 具有最高的优先级,or 优先级最低,所以 A and not B or C 等于 (A and (notB)) or C。 </p>
<p>逻辑操作符 and 和 or 也称作短路操作符:执行顺序从左向右,一旦结果确定就停止。例如AandBandC中,如果 A 和 C 为真而 B 为假,不会解析 C。 </p>
<p>可以把比较或其它逻辑表达式的返回值赋给变量,例如:</p>
<div class="highlight"><pre><span></span>>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'
>>> non_null = string1 or string2 or string3
>>> non_null
'Trondheim'
</pre></div>
<p>注意Python与C 不同,在表达式内部不能赋值,避免 C 程序中常见的错误:该用==时误用了=操作符。</p>
<h2 id="_3">选择</h2>
<p>用turtle绘制一个圆,从从左边滚动到右边,再从右边滚动到左边。</p>
<p>代码:</p>
<div class="highlight"><pre><span></span><span class="c1"># -*- coding: utf-8 -*-</span>
<span class="c1"># Author: xurongzhong#126.com wechat:pythontesting qq:37391319</span>
<span class="c1"># 技术支持 钉钉群:21745728(可以加钉钉pythontesting邀请加入) </span>
<span class="c1"># qq群:144081101 591302926 567351477</span>
<span class="c1"># CreateDate: 2018-6-12 </span>
<span class="c1"># bounce.py</span>
<span class="c1"># Bounce the turtle.</span>
<span class="kn">from</span> <span class="nn">turtle</span> <span class="kn">import</span> <span class="o">*</span>
<span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="n">distance</span><span class="p">):</span>
<span class="sd">"""Move forward, reversing direction at right side."""</span>
<span class="n">forward</span><span class="p">(</span><span class="n">distance</span><span class="p">)</span>
<span class="k">if</span> <span class="n">xcor</span><span class="p">()</span> <span class="o">></span> <span class="mi">320</span><span class="p">:</span>
<span class="n">setheading</span><span class="p">(</span><span class="mi">180</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="n">shape</span><span class="p">(</span><span class="s2">"circle"</span><span class="p">)</span>
<span class="n">penup</span><span class="p">()</span>
<span class="n">speed</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
<span class="n">move</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="n">exitonclick</span><span class="p">()</span>
<span class="n">main</span><span class="p">()</span>
</pre></div>
<p>方法 | 功能
| --- | --- |
shape(name) | 命名为name
speed(value) | 速度设置为1(慢)到10(最快)之间的value,其中0为“瞬间
xcor() | 返回当前x坐标
ycor() | 返回当前y坐标。
position() | 返回当前坐标 (x, y)
heading() | 返回当前方向
towards(x, y) | 从当前位置到(x, y)的方向。
distance(x, y) | 从当前位置到(x, y)的距离。</p>
<h2 id="_4">复杂的选择</h2>
<p>代码:</p>
<div class="highlight"><pre><span></span><span class="c1"># -*- coding: utf-8 -*-</span>
<span class="c1"># Author: xurongzhong#126.com wechat:pythontesting qq:37391319</span>
<span class="c1"># 技术支持 钉钉群:21745728(可以加钉钉pythontesting邀请加入) </span>
<span class="c1"># qq群:144081101 591302926 567351477</span>
<span class="c1"># CreateDate: 2018-6-12 </span>
<span class="c1"># mycircle.py</span>
<span class="c1"># Mimic circle() with adaptive radius.</span>
<span class="k">def</span> <span class="nf">mycircle</span><span class="p">(</span><span class="n">radius</span><span class="p">):</span>
<span class="sd">"""Draw circle as polygon."""</span>
<span class="k">if</span> <span class="n">radius</span> <span class="o"><</span> <span class="mi">20</span><span class="p">:</span>
<span class="n">sides</span> <span class="o">=</span> <span class="mi">10</span>
<span class="k">elif</span> <span class="n">radius</span> <span class="o"><</span> <span class="mi">100</span><span class="p">:</span>
<span class="n">sides</span> <span class="o">=</span> <span class="mi">30</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">sides</span> <span class="o">=</span> <span class="mi">50</span>
<span class="n">polygon</span><span class="p">(</span><span class="n">sides</span><span class="p">,</span> <span class="mf">6.28</span><span class="o">*</span><span class="n">radius</span><span class="o">/</span><span class="n">sides</span><span class="p">)</span>
</pre></div>
<h2 id="_5">随机</h2>
<p><img alt="image.png" src="https://upload-images.jianshu.io/upload_images/10819934-e02119d98e5efcd2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"></p>
<p>代码:</p>
<div class="highlight"><pre><span></span><span class="c1"># -*- coding: utf-8 -*-</span>
<span class="c1"># Author: xurongzhong#126.com wechat:pythontesting qq:37391319</span>
<span class="c1"># 技术支持 钉钉群:21745728(可以加钉钉pythontesting邀请加入) </span>
<span class="c1"># qq群:144081101 591302926 567351477</span>
<span class="c1"># CreateDate: 2018-6-12 </span>
<span class="c1"># randomwalk.py</span>
<span class="c1"># Draw path of a random walk.</span>
<span class="kn">from</span> <span class="nn">turtle</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">random</span> <span class="kn">import</span> <span class="n">randrange</span>
<span class="k">def</span> <span class="nf">random_move</span><span class="p">(</span><span class="n">distance</span><span class="p">):</span>
<span class="sd">"""Take random step on a grid."""</span>
<span class="n">left</span><span class="p">(</span><span class="n">randrange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">360</span><span class="p">,</span> <span class="mi">90</span><span class="p">))</span>
<span class="n">forward</span><span class="p">(</span><span class="n">distance</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="n">speed</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="k">while</span> <span class="nb">abs</span><span class="p">(</span><span class="n">xcor</span><span class="p">())</span> <span class="o"><</span> <span class="mi">200</span> <span class="ow">and</span> <span class="nb">abs</span><span class="p">(</span><span class="n">ycor</span><span class="p">())</span> <span class="o"><</span> <span class="mi">200</span><span class="p">:</span>
<span class="n">random_move</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="n">exitonclick</span><span class="p">()</span>
<span class="n">main</span><span class="p">()</span>
</pre></div>
<p>方法 | 功能
| --- | --- |
random() | 随机值x,0 ≤ x < 1(不一定是整数)。
uniform(a, b) | 随机数n,其中a≤n≤b。
randint(a, b) | 随机整数n,其中a≤n≤b。
randrange(start, stop, step) |range(start, stop, step)的随机整数</p>
<h2 id="_6">编码风格</h2>
<p>建议遵守PEP8,高可读性,部分要点如下: </p>
<div class="highlight"><pre><span></span>使用4空格缩进,而非tab。
每行不超过79个字符。
使用空行分隔函数和类,以及函数中的大代码块。
可能的话,注释占一行
使用文档字符串
操作符前后有空格,逗号后有空格,但是括号两侧无空格。如: a = f(1, 2) + g(3, 4) 。
统一函数和类命名。类名用首字母大写的驼峰式,比如CamelCase。函数和方法名用小写和下划线组成:lower_case_with_underscores。类中使用self。
国际化时不要使用花哨的编码。
</pre></div>
<p>另autopep8能把代码调整为符合pep8,pep8能检查是否符合pep8,mypy:静态类型检查等推荐使用。更多的<a href="https://github.com/china-testing/python-api-tesing#%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90%E5%92%8Clintcode-analysis">python规范外部库</a></p>
<h2 id="_7">参考资料</h2>
<ul>
<li>python测试等IT技术支持qq群: 144081101(后期会录制视频存在该群群文件) 591302926 567351477 钉钉免费群:21745728</li>
<li>道家技术-手相手诊看相中医等钉钉群21734177 qq群:391441566 184175668 338228106 看手相、面相、舌相、抽签、体质识别。服务费50元每人次起。请联系钉钉或者微信pythontesting</li>
<li><a href="https://china-testing.github.io/python3_crash4.html">本文最新版本地址</a></li>
<li><a href="https://github.com/china-testing/python-api-tesing">本文涉及的python测试开发库</a> 谢谢点赞!</li>
<li><a href="https://github.com/china-testing/python-api-tesing/blob/master/books.md">本文相关海量书籍下载</a></li>
<li><a href="https://china-testing.github.io/testing_training.html">接口自动化性能测试线上培训大纲</a></li>
</ul>
</div><!-- /.entry-content -->
</article>
</section>
<section id="extras" class="body">
<div class="blogroll">
<h2>links</h2>
<ul>
<li><a href="https://china-testing.github.io/testing_training.html">自动化性能接口测试线上及深圳培训与项目实战 qq群:144081101 591302926</a></li>
<li><a href="http://blog.sciencenet.cn/blog-2604609-1112306.html">pandas数据分析scrapy爬虫 521070358 Py人工智能pandas-opencv 6089740</a></li>
<li><a href="http://blog.sciencenet.cn/blog-2604609-1112306.html">中医解梦看相八字算命qq群 391441566 csdn书籍下载-python爬虫 437355848</a></li>
</ul>
</div><!-- /.blogroll -->
</section><!-- /#extras -->
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
Proudly powered by <a href="http://getpelican.com/">Pelican</a>, which takes great advantage of <a href="http://python.org">Python</a>.
</address><!-- /#about -->
<p>The theme is by <a href="http://coding.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/">Smashing Magazine</a>, thanks!</p>
</footer><!-- /#contentinfo -->
</body>
</html>