You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

5_Control_Flow.ipynb 12 kB

6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
3 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
6 years ago
2 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "# 控制流语句"
  8. ]
  9. },
  10. {
  11. "cell_type": "markdown",
  12. "metadata": {},
  13. "source": [
  14. "## 1. If"
  15. ]
  16. },
  17. {
  18. "cell_type": "markdown",
  19. "metadata": {},
  20. "source": [
  21. "语法为:\n",
  22. "```\n",
  23. "if some_condition:\n",
  24. " \n",
  25. " algorithm\n",
  26. "```"
  27. ]
  28. },
  29. {
  30. "cell_type": "code",
  31. "execution_count": 7,
  32. "metadata": {
  33. "scrolled": true
  34. },
  35. "outputs": [
  36. {
  37. "name": "stdout",
  38. "output_type": "stream",
  39. "text": [
  40. "Welcome!\n",
  41. "Too\n"
  42. ]
  43. }
  44. ],
  45. "source": [
  46. "x = 4\n",
  47. "if x >10: \n",
  48. " print(\"Hello\")\n",
  49. "else: \n",
  50. " print(\"Welcome!\")\n",
  51. " print(\"Too\")"
  52. ]
  53. },
  54. {
  55. "cell_type": "code",
  56. "execution_count": 6,
  57. "metadata": {},
  58. "outputs": [
  59. {
  60. "name": "stdout",
  61. "output_type": "stream",
  62. "text": [
  63. "Hello\n",
  64. "2\n"
  65. ]
  66. }
  67. ],
  68. "source": [
  69. "x = 14\n",
  70. "if x > 10: print(\"Hello\"); print(\"2\")"
  71. ]
  72. },
  73. {
  74. "cell_type": "markdown",
  75. "metadata": {},
  76. "source": [
  77. "## 2. If-else"
  78. ]
  79. },
  80. {
  81. "cell_type": "markdown",
  82. "metadata": {},
  83. "source": [
  84. "语法为:\n",
  85. "```\n",
  86. "if some_condition:\n",
  87. " \n",
  88. " algorithm\n",
  89. " \n",
  90. "else:\n",
  91. " \n",
  92. " algorithm\n",
  93. "```"
  94. ]
  95. },
  96. {
  97. "cell_type": "code",
  98. "execution_count": 8,
  99. "metadata": {},
  100. "outputs": [
  101. {
  102. "name": "stdout",
  103. "output_type": "stream",
  104. "text": [
  105. "hello\n"
  106. ]
  107. }
  108. ],
  109. "source": [
  110. "x = 12\n",
  111. "if x > 10:\n",
  112. " print(\"hello\")\n",
  113. "else:\n",
  114. " print(\"world\")"
  115. ]
  116. },
  117. {
  118. "cell_type": "markdown",
  119. "metadata": {},
  120. "source": [
  121. "## 3. if-elif"
  122. ]
  123. },
  124. {
  125. "cell_type": "markdown",
  126. "metadata": {},
  127. "source": [
  128. "语法为:\n",
  129. "```\n",
  130. "if some_condition:\n",
  131. " \n",
  132. " algorithm\n",
  133. "\n",
  134. "elif some_condition:\n",
  135. " \n",
  136. " algorithm\n",
  137. "\n",
  138. "else:\n",
  139. " \n",
  140. " algorithm\n",
  141. "```"
  142. ]
  143. },
  144. {
  145. "cell_type": "code",
  146. "execution_count": 9,
  147. "metadata": {},
  148. "outputs": [
  149. {
  150. "name": "stdout",
  151. "output_type": "stream",
  152. "text": [
  153. "x<y\n"
  154. ]
  155. }
  156. ],
  157. "source": [
  158. "x = 10\n",
  159. "y = 12\n",
  160. "if x > y:\n",
  161. " print(\"x>y\")\n",
  162. "elif x < y:\n",
  163. " print(\"x<y\")\n",
  164. "else:\n",
  165. " print(\"x=y\")"
  166. ]
  167. },
  168. {
  169. "cell_type": "markdown",
  170. "metadata": {},
  171. "source": [
  172. "在if语句里的if语句,if-elif或if-else都被称为嵌套if语句。"
  173. ]
  174. },
  175. {
  176. "cell_type": "code",
  177. "execution_count": 4,
  178. "metadata": {},
  179. "outputs": [
  180. {
  181. "name": "stdout",
  182. "output_type": "stream",
  183. "text": [
  184. "x<y\n",
  185. "x=10\n"
  186. ]
  187. }
  188. ],
  189. "source": [
  190. "x = 10\n",
  191. "y = 12\n",
  192. "if x > y:\n",
  193. " print(\"x>y\")\n",
  194. "elif x < y:\n",
  195. " print(\"x<y\")\n",
  196. " if x==10:\n",
  197. " print(\"x=10\")\n",
  198. " else:\n",
  199. " print(\"invalid\")\n",
  200. "else:\n",
  201. " print(\"x=y\")"
  202. ]
  203. },
  204. {
  205. "cell_type": "markdown",
  206. "metadata": {},
  207. "source": [
  208. "## 4. 循环"
  209. ]
  210. },
  211. {
  212. "cell_type": "markdown",
  213. "metadata": {},
  214. "source": [
  215. "### 4.1 for"
  216. ]
  217. },
  218. {
  219. "cell_type": "markdown",
  220. "metadata": {},
  221. "source": [
  222. "语法为:\n",
  223. "```\n",
  224. "for variable in something:\n",
  225. " \n",
  226. " statements\n",
  227. "```"
  228. ]
  229. },
  230. {
  231. "cell_type": "code",
  232. "execution_count": 10,
  233. "metadata": {},
  234. "outputs": [
  235. {
  236. "name": "stdout",
  237. "output_type": "stream",
  238. "text": [
  239. "0\n",
  240. "1\n",
  241. "2\n",
  242. "3\n",
  243. "4\n"
  244. ]
  245. }
  246. ],
  247. "source": [
  248. "for i in range(5):\n",
  249. " print(i)"
  250. ]
  251. },
  252. {
  253. "cell_type": "code",
  254. "execution_count": 12,
  255. "metadata": {},
  256. "outputs": [
  257. {
  258. "name": "stdout",
  259. "output_type": "stream",
  260. "text": [
  261. "1\n",
  262. "2\n",
  263. "5\n",
  264. "6\n"
  265. ]
  266. }
  267. ],
  268. "source": [
  269. "a = (1, 2, 5, 6)\n",
  270. "for i in a:\n",
  271. " print(i)"
  272. ]
  273. },
  274. {
  275. "cell_type": "markdown",
  276. "metadata": {},
  277. "source": [
  278. "在上面的例子中,遍历了 `0,1,2,3,4`。每次它取每个值并在循环内执行算法。还可以遍历如下所示的嵌套列表。"
  279. ]
  280. },
  281. {
  282. "cell_type": "code",
  283. "execution_count": 13,
  284. "metadata": {},
  285. "outputs": [
  286. {
  287. "name": "stdout",
  288. "output_type": "stream",
  289. "text": [
  290. "[1, 2, 3]\n",
  291. "[4, 5, 6]\n",
  292. "[7, 8, 9]\n"
  293. ]
  294. }
  295. ],
  296. "source": [
  297. "list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n",
  298. "for list1 in list_of_lists:\n",
  299. " print(list1)"
  300. ]
  301. },
  302. {
  303. "cell_type": "markdown",
  304. "metadata": {},
  305. "source": [
  306. "嵌套的for循环的一个用例是"
  307. ]
  308. },
  309. {
  310. "cell_type": "code",
  311. "execution_count": 14,
  312. "metadata": {},
  313. "outputs": [
  314. {
  315. "name": "stdout",
  316. "output_type": "stream",
  317. "text": [
  318. "1\n",
  319. "2\n",
  320. "3\n",
  321. "\n",
  322. "4\n",
  323. "5\n",
  324. "6\n",
  325. "\n",
  326. "7\n",
  327. "8\n",
  328. "9\n",
  329. "\n"
  330. ]
  331. }
  332. ],
  333. "source": [
  334. "list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n",
  335. "for list1 in list_of_lists:\n",
  336. " for x in list1:\n",
  337. " print(x)\n",
  338. " print()"
  339. ]
  340. },
  341. {
  342. "cell_type": "markdown",
  343. "metadata": {},
  344. "source": [
  345. "### 4.2 while"
  346. ]
  347. },
  348. {
  349. "cell_type": "markdown",
  350. "metadata": {},
  351. "source": [
  352. "语法是:\n",
  353. "```\n",
  354. "while some_condition:\n",
  355. " \n",
  356. " algorithm\n",
  357. "```"
  358. ]
  359. },
  360. {
  361. "cell_type": "code",
  362. "execution_count": 17,
  363. "metadata": {},
  364. "outputs": [
  365. {
  366. "name": "stdout",
  367. "output_type": "stream",
  368. "text": [
  369. "1\n",
  370. "4\n",
  371. "Bye\n",
  372. "looping 4\n",
  373. "looping 5\n",
  374. "looping 6\n",
  375. "looping 7\n",
  376. "looping 8\n",
  377. "looping 9\n",
  378. "looping 10\n",
  379. "looping 11\n"
  380. ]
  381. }
  382. ],
  383. "source": [
  384. "i = 1\n",
  385. "while i < 3:\n",
  386. " print(i ** 2)\n",
  387. " i = i+1\n",
  388. "print('Bye')\n",
  389. "\n",
  390. "# do-untile\n",
  391. "while True:\n",
  392. " #do something\n",
  393. " i = i+1\n",
  394. " print('looping %3d' % i)\n",
  395. " \n",
  396. " # check \n",
  397. " if i>10: break"
  398. ]
  399. },
  400. {
  401. "cell_type": "markdown",
  402. "metadata": {},
  403. "source": [
  404. "## 5. break"
  405. ]
  406. },
  407. {
  408. "cell_type": "markdown",
  409. "metadata": {},
  410. "source": [
  411. "顾名思义。它用于在执行循环时,当条件为真时中断循环。"
  412. ]
  413. },
  414. {
  415. "cell_type": "code",
  416. "execution_count": 9,
  417. "metadata": {},
  418. "outputs": [
  419. {
  420. "name": "stdout",
  421. "output_type": "stream",
  422. "text": [
  423. "0\n",
  424. "1\n",
  425. "2\n",
  426. "3\n",
  427. "4\n",
  428. "5\n",
  429. "6\n",
  430. "7\n"
  431. ]
  432. }
  433. ],
  434. "source": [
  435. "for i in range(100):\n",
  436. " print(i)\n",
  437. " if i>=7:\n",
  438. " break"
  439. ]
  440. },
  441. {
  442. "cell_type": "markdown",
  443. "metadata": {},
  444. "source": [
  445. "## 6. continue"
  446. ]
  447. },
  448. {
  449. "cell_type": "markdown",
  450. "metadata": {},
  451. "source": [
  452. "这将继续循环的其余部分。有时,当满足条件时,循环有可能终止。这可以使用continue语句避免。"
  453. ]
  454. },
  455. {
  456. "cell_type": "code",
  457. "execution_count": 10,
  458. "metadata": {},
  459. "outputs": [
  460. {
  461. "name": "stdout",
  462. "output_type": "stream",
  463. "text": [
  464. "0\n",
  465. "1\n",
  466. "2\n",
  467. "3\n",
  468. "4\n",
  469. "The end.\n",
  470. "The end.\n",
  471. "The end.\n",
  472. "The end.\n",
  473. "The end.\n"
  474. ]
  475. }
  476. ],
  477. "source": [
  478. "for i in range(10):\n",
  479. " if i>4:\n",
  480. " print(\"The end.\")\n",
  481. " continue\n",
  482. " if i<7:\n",
  483. " print(i)"
  484. ]
  485. },
  486. {
  487. "cell_type": "markdown",
  488. "metadata": {},
  489. "source": [
  490. "## 7. 列表推导(List Comprehensions)"
  491. ]
  492. },
  493. {
  494. "cell_type": "markdown",
  495. "metadata": {},
  496. "source": [
  497. "Python可以使用列表推导模式,用一行代码就可以很容易地生成所需的列表。例如,如果我需要生成27的倍数,用`for`循环缩写的代码如下:"
  498. ]
  499. },
  500. {
  501. "cell_type": "code",
  502. "execution_count": 18,
  503. "metadata": {},
  504. "outputs": [
  505. {
  506. "name": "stdout",
  507. "output_type": "stream",
  508. "text": [
  509. "[27, 54, 81, 108, 135, 162, 189, 216, 243, 270]\n"
  510. ]
  511. }
  512. ],
  513. "source": [
  514. "res = []\n",
  515. "for i in range(1,11):\n",
  516. " x = 27*i\n",
  517. " res.append(x)\n",
  518. "print(res)"
  519. ]
  520. },
  521. {
  522. "cell_type": "markdown",
  523. "metadata": {},
  524. "source": [
  525. "由于你需要生成另一个列表,所以列表推导是解决这个问题的更有效的方法(建议大家使用这样的方式)"
  526. ]
  527. },
  528. {
  529. "cell_type": "code",
  530. "execution_count": 19,
  531. "metadata": {},
  532. "outputs": [
  533. {
  534. "data": {
  535. "text/plain": [
  536. "[27, 54, 81, 108, 135, 162, 189, 216, 243, 270]"
  537. ]
  538. },
  539. "execution_count": 19,
  540. "metadata": {},
  541. "output_type": "execute_result"
  542. }
  543. ],
  544. "source": [
  545. "[27*x for x in range(1,11)]"
  546. ]
  547. },
  548. {
  549. "cell_type": "markdown",
  550. "metadata": {},
  551. "source": [
  552. "将表达方式用方括号括起来。"
  553. ]
  554. },
  555. {
  556. "cell_type": "markdown",
  557. "metadata": {},
  558. "source": [
  559. "上述代码的第一个块 `27*x` 是输出的内容,然后留下一个空格,然后写必要的循环。\n",
  560. "\n",
  561. "你可能想知道嵌套循环可以扩展到列表理解吗?是的,可以嵌套,如下面的例子:"
  562. ]
  563. },
  564. {
  565. "cell_type": "code",
  566. "execution_count": 20,
  567. "metadata": {},
  568. "outputs": [
  569. {
  570. "data": {
  571. "text/plain": [
  572. "[27, 54, 81, 108, 135, 162, 189, 216, 243, 270]"
  573. ]
  574. },
  575. "execution_count": 20,
  576. "metadata": {},
  577. "output_type": "execute_result"
  578. }
  579. ],
  580. "source": [
  581. "[27*x for x in range(1,20) if x<=10]"
  582. ]
  583. },
  584. {
  585. "cell_type": "code",
  586. "execution_count": 21,
  587. "metadata": {
  588. "scrolled": true
  589. },
  590. "outputs": [
  591. {
  592. "data": {
  593. "text/plain": [
  594. "{'108': 108,\n",
  595. " '135': 135,\n",
  596. " '162': 162,\n",
  597. " '189': 189,\n",
  598. " '216': 216,\n",
  599. " '243': 243,\n",
  600. " '27': 27,\n",
  601. " '270': 270,\n",
  602. " '54': 54,\n",
  603. " '81': 81}"
  604. ]
  605. },
  606. "execution_count": 21,
  607. "metadata": {},
  608. "output_type": "execute_result"
  609. }
  610. ],
  611. "source": [
  612. "{str(27*x):27*x for x in range(1,20) if x<=10}"
  613. ]
  614. },
  615. {
  616. "cell_type": "code",
  617. "execution_count": 22,
  618. "metadata": {},
  619. "outputs": [
  620. {
  621. "data": {
  622. "text/plain": [
  623. "(27, 54, 81, 108, 135, 162, 189, 216, 243, 270)"
  624. ]
  625. },
  626. "execution_count": 22,
  627. "metadata": {},
  628. "output_type": "execute_result"
  629. }
  630. ],
  631. "source": [
  632. "tuple((27*x for x in range(1,20) if x<=10))"
  633. ]
  634. },
  635. {
  636. "cell_type": "markdown",
  637. "metadata": {},
  638. "source": [
  639. "再加一个循环,让大家更好地理解"
  640. ]
  641. },
  642. {
  643. "cell_type": "code",
  644. "execution_count": 15,
  645. "metadata": {},
  646. "outputs": [
  647. {
  648. "data": {
  649. "text/plain": [
  650. "[1, 2, 3, 4, 28, 29, 30, 31, 55, 56, 57, 58]"
  651. ]
  652. },
  653. "execution_count": 15,
  654. "metadata": {},
  655. "output_type": "execute_result"
  656. }
  657. ],
  658. "source": [
  659. "[27*i+z for i in range(5) if i<3 for z in range(1,5)]"
  660. ]
  661. }
  662. ],
  663. "metadata": {
  664. "kernelspec": {
  665. "display_name": "Python 3",
  666. "language": "python",
  667. "name": "python3"
  668. },
  669. "language_info": {
  670. "codemirror_mode": {
  671. "name": "ipython",
  672. "version": 3
  673. },
  674. "file_extension": ".py",
  675. "mimetype": "text/x-python",
  676. "name": "python",
  677. "nbconvert_exporter": "python",
  678. "pygments_lexer": "ipython3",
  679. "version": "3.5.4"
  680. }
  681. },
  682. "nbformat": 4,
  683. "nbformat_minor": 1
  684. }

机器学习越来越多应用到飞行器、机器人等领域,其目的是利用计算机实现类似人类的智能,从而实现装备的智能化与无人化。本课程旨在引导学生掌握机器学习的基本知识、典型方法与技术,通过具体的应用案例激发学生对该学科的兴趣,鼓励学生能够从人工智能的角度来分析、解决飞行器、机器人所面临的问题和挑战。本课程主要内容包括Python编程基础,机器学习模型,无监督学习、监督学习、深度学习基础知识与实现,并学习如何利用机器学习解决实际问题,从而全面提升自我的《综合能力》。