1. # 1:给定一个数,判断他是正数,负数,还是0
  2. a = int(input("请输入一该个整数"))
  3. if a == 0:
  4. print(a, "是0")
  5. elif a > 0:
  6. print(a, "是正数")
  7. else:
  8. print(a, "是负数")
  9.  
  10. # 练习2:输入一个季度的数字 输出该季度有那几个月
  11. b = int(input("请输入一个季度:1.春季2.夏季3.秋季4.冬季"))
  12. if b > 4:
  13. print(b, "不是季节")
  14. elif b < 0:
  15. print(b, "不是季节")
  16. else:
  17. if b == 1:
  18. print(b, "春季有:一月,二月,三月")
  19. elif b == 2:
  20. print(b, "夏季有:四月,五月,六月")
  21. elif b == 3:
  22. print(b, "秋季有:七月,八月,九月")
  23. else:
  24. print(b, "冬季有:十月,十一月,十二月")
  25.  
  26. # 联系3:输入一个月份 输出这个月份在那个季度
  27. c = int(input("请输入一个月份判断在那个季度"))
  28. if c < 0:
  29. print(c, "不是月份")
  30. elif c > 12:
  31. print(c, "不是月份")
  32. elif c < 4:
  33. print(c, "在春季")
  34. elif c < 7:
  35. print(c, "在夏季")
  36. elif c < 10:
  37. print(c, "在秋季")
  38. elif c <= 12:
  39. print(c, "在冬季")
  40.  
  41. # 练习4:3公里内10元 超出1.9元/公里  超过15公里 每公里加50%回空费 3.15元/公里
  42. # 输入公里  打印车费
  43.  
  44. d = int(input("请输入行驶公里数:"))
  45. if d <= 3:
  46. print("车费:10元")
  47. elif d > 4:
  48. if d < 15:
  49. g = (d - 3) * 1.9 + 10
  50. print(d, "公里:", g, "元")
  51. else:
  52. f = (d - 15) * 3.15 * 1.5 + 12 * 1.9 + 10
  53. print(d, "公里:", f, "元")
  54. elif d < 0:
  55. print("公里数输入错误")
  56.  
  57. 练习:
  58. 1. 一个商店卖西瓜,7元一个,您带20元钱能买到几个西瓜? 剩多少元?
  59. 2. 一个学生毕业薪资10000元,每个涨薪 20%,请问十年后这个学生的薪资是多少?
  60.  
  61. 1. 打印如下图形:
  62. *******
  63. * *
  64. * *
  65. *******
  66. 2. 已知矩形的长边长为6cm,短边长为4cm,用表达式求
  67. 1) 周长是多少?
  68. 2) 面积是多少?
  69.  
  70. 练习:
  71. 1. 指定一个圆的半径是r = 9cm
  72. 1) 计算圆的周长
  73. 2) 计算圆的面积
  74.  
  75. 2. 交量交换练习:
  76. 已知有两个变量:
  77. a 绑定 10000
  78. b 绑定 20000
  79. 问,在不创建任何新数据对象的情况下,如何让a b 交换绑定的对象
  80. a = 10000
  81. b = 20000
  82. ....
  83. print(a) #
  84. print(b) #
  85.  
  86. 练习:
  87. 1. 中国古代的秤是16两一斤,请问古代对216两是古代的几斤几两,写程序打印出来?
  88.  
  89. 2. 从凌晨 0:0:0 计时,到现在已经过了63320秒,
  90. 请问现在是几时,几分,几秒,写程序打印出来
  91. 提示:
  92. 可以用地板除和求余实现
  93.  
  94. 3. 温度转换:
  95. 摄氏温度 = 5.0/9.0*(华氏温度-32)
  96.  
  97. 请问100华氏温度是多少摄氏温度.写程序算出来
  98. 思考:
  99. 如果知道当前温度是摄氏温度度,能否算出华氏温度是多少?
  100.  
  101. 练习:
  102. 将数字3.14 用变量pi绑定
  103. pi变量转为整数,用变量i绑定
  104. pi 变量 i变量相减,结果用f变量绑定
  105. 1. 判断f是否等于 0.14? 为什么?
  106. 2. 删除所有的变量
  107. (用交互模式来实现)
  108.  
  109. 练习:
  110. 1. 输入两个整数, 分别用变量x, y绑定
  111. 1) 计算这两个数的和,并打印结果
  112. 2) 计算这两个数的积,并打印结果
  113. 3) 计算xy次方并打印结果
  114. 如:
  115. 请输入x: 10
  116. 请输入y: 20
  117. 打印如下:
  118. 10 + 20 = 30
  119. 10 * 20 = 200
  120. 10 ** 20 = ...
  121. 2. 今天是小明20周岁的生日,假设每年有365天,计算它过了多少个星期天,余多少天
  122. 3. 分三次输入当前的小时,分钟和秒数,在终端打印时此距离凌晨0:0:0 秒过了多少秒
  123.  
  124. 练习:
  125. 任意输入一个数
  126. 1) 判断这个数是否大于100
  127. 2) 判断这个数是否小于0
  128. 3)判断这个数是否在80~100之间
  129.  
  130. 练习:
  131. 1. 输入一个季度 1~4的整数.输出这个季度有哪儿几个月,如果输入的不是1~4的整数,则提示用户您输错了
  132.  
  133. 2. 输入一年中的月份(1~12) 输出这个月在哪儿个季度,如果输入的是其它数,则提示您输错了
  134.  
  135. 思考:
  136. score = input('请输入学生成绩:') or ''
  137. score = int(score)
  138. 请问这个or是在做什么?
  139.  
  140. 练习:
  141. 1. 北京出租车计价:
  142. 收费标准:
  143. 3公里以内收费13
  144. 基本单价: 2.3元/公里 (超出3公里以外)
  145. 空驶费:超过15公里后,每公里加收单价的50%的空驶费(即3.45元/公里)
  146. 要求:
  147. 输入公里数,打印出费用金额(以元为单位四舍五入)
  148. 2. 输入一个学生的三科成绩(三个整数):
  149. 打印出最高分是多少?
  150. 打印出最低分是多少?
  151. 打印出平均分是多少?
  152. 3. BMI指数(Body Mass Index) 以称身体质量指数
  153. BMI值计算公式:
  154. BMI = 体重(公斤) / 身高的平方(米)
  155. 例如:
  156. 一个人69公斤,身高是173公分
  157. BMI = 69 / 1.73**2 = 23.05
  158. 标准表:
  159. BMI < 18.5 体重过轻
  160. 18.5 <= BMI < 24 体重正常
  161. BMI > 24 体重过重
  162. 要求: 输入身高的体重,打印出BMI的值并打印体重状况
  163.  
  164. 思考:
  165. 如果一个字符串同时包含如下字符该怎么办?
  166. ' " ''' """
  167.  
  168. 练习:
  169. 试求出以下字符串含有多少个字符?
  170. '1234abcd' # 8
  171. '5\'4"' # 4
  172. '\"A\x34\U00006041' # 4
  173. '\b\n\td\r'
  174. '\\nn\\x41'
  175.  
  176. 练习:
  177. 写一个程序,打印一个高度为4行的矩形方框
  178. 要求输入一个整形数字,此整数代表矩形的宽度,输出此矩形
  179. 如:
  180. 请输入矩形宽度: 10
  181. ##########
  182. # #
  183. # #
  184. ##########
  185. 请输入矩形宽度: 5
  186. #####
  187. # #
  188. # #
  189. #####
  190.  
  191. 练习:
  192. 输入一个字符串,打印如下内容:
  193. 1. 打印这个字符串的第一个字符
  194. 2. 打印这个字符串的最后一个字符
  195. 3. 如果这个字符串的长度是奇数,打印中间这个字符
  196. 注:
  197. 求字符串的长度的函数len(s)
  198.  
  199. 练习:
  200. 1. 写一个程序,输入一个字符串,把字符串的第一个字符和最后一个字符去掉后,打印出处理后的字符串
  201.  
  202. 2. 输入任意一个字符串,判断这个字符串是否是回文
  203. 回文示例:
  204. 上海自来水来自海上
  205. ABCCBA
  206. 12321
  207. (回文是指中心对称的文字)
  208.  
  209. 练习:
  210. 1. 写一个程序,输入一段字符串,如果字符串不为空,把第一个字符的编码值打印出来
  211. 2. 写一个程序,输入一个整数值(0~65535), 打印出这个数值所对应的字符
  212.  
  213. 练习:
  214. 1. 输入一个字符串用变量s绑定
  215. 1) 判断您输入的字符串有几个空格
  216. 2) 将原字符串的左右空白字符去掉, 打印出剩余的字符个数
  217. 3)判断您输入的是否是数字
  218. 4) 如果是数字,判断这个数字是否大于100
  219. 2. 输入三行文字,让这三行文字在一个方框内居中显示
  220. 如输入:
  221. hello!
  222. I'm studing python!
  223. I like python
  224. 显示如下
  225. +---------------------+
  226. | hello! |
  227. | I'm studing python! |
  228. | I like python |
  229. +---------------------+
  230. 注:请不要输入中文
  231.  
  232. 练习:
  233. 输入三行文字,让这三行文字依次以20个字符的宽度右对齐输出
  234. 如:
  235. 请输入第1行: hello world
  236. 请输入第2行: aaa
  237. 请输入第3行: ABCDEFG
  238. 输出结果如下:
  239. hello world
  240. aaa
  241. ABCDEFG
  242.  
  243. 做完上面的题后思考:
  244. 能否以最长的字符串的长度进行右对齐显示(左侧填充空格)
  245.  
  246. 问题:
  247. 输入一个整数n, 写程序打印如下:
  248. 这是第 1 行
  249. 这是第 2 行
  250. 这是第 3 行
  251. ...
  252. 这是第 n 行
  253. 问题:
  254. 如何让一条语句重复执行多次?
  255. 用:
  256. print("这是第", i, '')
  257. 能否实现
  258.  
  259. 练习:
  260. 1. 输入一行字符串,将字符串中Unicode编码值最大的一个字符打印出来(不允许用max函数)
  261. (提示: while语句内可以嵌入 if 语句进行判断)
  262.  
  263. 2. 打印 从零开始的浮点数,每个数增加 0.5, 打印出10以内的这样的数:
  264. 0.0
  265. 0.5
  266. 1.0
  267. 1.5
  268. ...
  269. 9.5
  270.  
  271. 练习:
  272. 1. 打印 1 ~ 20的整数
  273.  
  274. 2. 打印从10开始 到 0(不包含0)之间的整数
  275.  
  276. 3. 打印 1 ~ 20的整数,打印在一行内
  277.  
  278. 4. 打印 1 ~ 20的整数,每行打印5个,打印四行如:
  279. 1 2 3 4 5
  280. 6 7 8 9 10
  281. 11 12 .....
  282. .....
  283. 提示: while中可以嵌入if语句来换行
  284.  
  285. 5. 输入一个整数n, 打印出一个长方形
  286. n 代表长方形的宽度的字符数和高的行数
  287. 例如:
  288. 请输入:4
  289. 打印:
  290. ####
  291. # #
  292. # #
  293. ####
  294. 请输入:6
  295. 打印:
  296. ######
  297. # #
  298. # #
  299. # #
  300. # #
  301. ######
  302.  
  303. 练习:
  304. 输入一个数,打印指定宽度的正方形
  305. 如:
  306. 输入: 5
  307. 打印如下正方形:
  308. 1 2 3 4 5
  309. 1 2 3 4 5
  310. 1 2 3 4 5
  311. 1 2 3 4 5
  312. 1 2 3 4 5
  313. 如:
  314. 输入: 3
  315. 打印如下正方形:
  316. 1 2 3
  317. 1 2 3
  318. 1 2 3
  319.  
  320. 练习:
  321. 1. 写程序,计算:
  322. 1 + 2 + 3 + 4 + ..... + 99 + 100的和
  323.  
  324. 2. 写程序,任意输入一个数n,计算:
  325. 1 + 2 + 3 + 4 + ..... + (n-1) + n的和
  326.  
  327. 问题:
  328. 如果在循环过程中不想再继续此循环语句的执行了,怎么办?
  329.  
  330. 练习:
  331. 1. 任意输入一些数,当输入负数时结束输入
  332. 当输入完成后,打印您输入的这些数的和是多少?
  333.  
  334. 2. 写程序求:
  335. Sn = 1 + 1/2 + 1/4 + 1/8 + .... + 1/(2**n)
  336. 求当n等同于100时,sn的值是多少?
  337. 3. 用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印出相应的直角三角形:
  338. 如:
  339. 请输入三角形的宽度: 4
  340. 1) 打印如下:
  341. *
  342. **
  343. ***
  344. ****
  345. 2) 打印如下:
  346. *
  347. **
  348. ***
  349. ****
  350. 3) 打印如下:
  351. ****
  352. ***
  353. **
  354. *
  355. 4) 打印如下:
  356. ****
  357. ***
  358. **
  359. *
  360.  
  361. 练习:
  362. 任意输入一段字符串
  363. 1) 计算您输入的字符'A' 的个数,并打印出来
  364. 2) 计算出空格的个数,并打印出来
  365. (要求用for语句,不允许使用, S.count方法)
  366.  
  367. 思考用while语句能否实现上述功能
  368.  
  369. 练习:
  370. 用for 语句打印1~20 打印在一行内
  371.  
  372. 练习:
  373. 求 100以内有哪儿些整数与自身+1的乘积再对11求余的结果等于8?
  374.  
  375. x * (x+1) % 11 == 8 x附合条件
  376.  
  377. 1. 写程序计算 1 + 3 + 5 + 7 + ...+ 99的和
  378. (要求用for语句和while语句两种方式实现)
  379.  
  380. 2. 用while语句实现打印:
  381. 1 3 5 7 9. .... 19
  382. 打印在一行内
  383.  
  384. 3. 将上题用for语句来实现
  385.  
  386. 练习:
  387. 用for 语句实现下题 :
  388.   1. 输入一个数w代表正方形的宽度,打印如下正方形:
  389. 如输入:5
  390. 1 2 3 4 5
  391. 1 2 3 4 5
  392. 1 2 3 4 5
  393. 1 2 3 4 5
  394. 1 2 3 4 5
  395. 2. 写程序来改写上题:
  396. 如输入: 5
  397. 打印如下:
  398. 1 2 3 4 5
  399. 2 3 4 5 6
  400. 3 4 5 6 7
  401. 4 5 6 7 8
  402. 5 6 7 8 9
  403. 如输入: 3
  404. 打印如下:
  405. 1 2 3
  406. 2 3 4
  407. 3 4 5
  408.  
  409. 练习:
  410. 1. 输入一个整数用begin绑定,
  411. 再输入一个整数用end绑定
  412. 打印从begin开始,到end结束内的全部奇数(不包含end)
  413.  
  414. 2. 将上述练习改写为 用while语句实现
  415.  
  416. 3. 求 1~100 之间所有不被 5, 7, 11 整除的数的和
  417. (可以考虑用continue实现)
  418.  
  419. 练习:
  420. 1 输入三行文字,将这三行文字, 保存于一个列表L中,并打印
  421. 如:
  422. 请输入: abc<回车>
  423. 请输入: 123<回车>
  424. 请输入: 你好<回车>
  425. 生成列表如下:
  426. L = ['abc', '123', '你好']
  427. print(L) 打印
  428.  
  429. 练习:
  430. 1. 输入任意行文字,存于列表L中,当不输入任何内容直接回车后结束输入
  431. 1) 打印L列表中的内容
  432. 2) 计算您共输入了几行内容
  433. 3) 计算您共输入了多少个字符
  434.  
  435. 2. 输入一个整数(代表树干的高度)
  436. 打印出如下一棵树
  437. 输入: 2
  438. 打印:
  439. *
  440. ***
  441. *
  442. *
  443. 输入:3
  444. *
  445. ***
  446. *****
  447. *
  448. *
  449. *
  450. 3. 写一个程序,任意输入一个整数,判断这个数是否是素数(prime)
  451. 素数(也叫质数), 是只能被1和自身整除的正整数:
  452. 如: 2 3 5 7 11 等
  453. 提示:
  454. 用排除法: 当判断x是否是素数是,只要让x分别除以:
  455. 2, 3, 4, 5, .... x-1, 只要整除了,那x不是素数,否则x是素数
  456. 4.算出100~1000以内的水仙化数(Naricissistic Number)
  457. 水仙花数是指百位的3次方 加上 十位的3次方 加上 个位的3次方等于原数的数
  458. 如:
  459. 153 = 1**3 + 5**3 + 3**3
  460. 答案:
  461. 153, 370, ....
  462.  
  463. 练习:
  464. 已知有列表:
  465. L = [3, 5]
  466.  
  467. 1) 用索引和切片等操作,将原列表改变为:
  468. L = [1, 2, 3, 4, 5, 6]
  469.  
  470. 2) 将列表反转,删除最后一个元素后打印此列表
  471. ...
  472. print(L) # [6, 5, 4, 3, 2]
  473.  
  474. 练习:
  475. 1. 写程序,让用户输入一些整数,当输入-1时结束输入,将这些数存于列表L中
  476. 1) 打印用户共输入了几个数?
  477. 2) 打印您输入的数的最大数是多少
  478. 3) 打印您输入的数的最小数是多少
  479. 4) 打印您输入的这些数的平均值是多少?
  480.  
  481. 练习:
  482. 输入多行文字,存入列表中,
  483. 每次输入回车后算一行
  484. 任意输入多行,当输入回车(即输入空行时结束输入)
  485. 1) 按原输入内容在屏幕上输出内容
  486. 2) 打印出您共输入了多少行文字
  487. 3) 打印出您共输入了多少个字符
  488.  
  489. 练习:
  490. 1. 有字符串"hello"
  491. 请用此字符串生成:
  492. 'h e l l o' 和 'h-e-l-l-o'
  493. 答案:
  494. s = "hello"
  495. a = ' '.join(s) # a = 'h e l l o'
  496. b = '-'.join(s) # b = 'h-e-l-l-o'
  497.  
  498. 2. 写一个程序,让用户输入很多正整数,当输入小于零的数时结束输入,
  499. 1) 打印这些数中最大的一个数
  500. 2) 打印这些数中第二大的一个数
  501. 3) 删除最小的一个数
  502. 4) 打印剩余数的和
  503.  
  504. 练习:
  505. 用列表推导式生成1~100内奇数的列表
  506. 结果是: [1, 3, 5, 7, ..... 99]
  507.  
  508. L = [x for x in range(1, 100, 2)]
  509.  
  510. 示例:
  511. 生成1~00内的奇数的列表:
  512. L = [x for x in range(1, 100) if x % 2 == 1]
  513.  
  514. 练习:
  515. 生成一个数值为 1 ~ 9的平方的列表,去掉所有的奇数的平方
  516. L = [x**2 for x in range(1, 10)]
  517.  
  518. # L = [4, 16, 36, 64]
  519.  
  520. 练习:
  521. 1. 已知有一个字符串
  522. s = '100,200,300,500,800'
  523. 将其转化为整数的列表存于L列表中
  524. L = [100, 200, 300, 500, 800]
  525.  
  526. 2. 生成前40个斐波那契数(Fibonacci)
  527. 1 1 2 3 5 8 13 .....
  528. 要求将这些数保存在列表中
  529. 打印这些数
  530.  
  531. 3. 有一些数存于列表中:
  532. L = [1, 3, 2, 1, 6, 4, 2, ..... 98, 82]
  533. 将列表中出现的数字存入到另一个列表L2中
  534. 要求: 重复出现多次的数字在L2列表中只保留一份(去重)
  535.  
  536. 写程序,实现以下要求:
  537. 1) 将如下数据形成一个字典seasons:
  538. '' ''
  539. 1 '春季有1, 2, 3'
  540. 2 '夏季有4, 5, 6'
  541. 3 '秋季有7, 8, 9'
  542. 4 '冬季有10,11,12'
  543. 2) 让用户输入一个整数,代表一个季度,打印这个季度对应的信息,如果用户输入的信息不在字典内,则打印信息不存在
  544.  
  545. 练习:
  546. 输入一段字符串,打印出这个字符串中出现过的字符的出现次数
  547. 如:
  548. 输入:
  549. abcdabcaba
  550. 打印:
  551. a: 4次
  552. b: 3次
  553. d: 1次
  554. c: 2次
  555. 注:
  556. 不要求打印的顺序
  557.  
  558. 练习:
  559. 有字符串的列表如下:
  560. L = ['tarena', 'xiaozhang', 'tyke']
  561. 用上述列表生成如下字典:
  562. d = {'tarena': 6, 'xiaozhang': 9, 'tyke':4}
  563. 注:
  564. 字典的值为键的长度
  565.  
  566. 练习:
  567. 1. 已知有两个等长的列表 list1 和 list2
  568. 以list1中的元素为键,以list2中的元素为值,生成相应的字典
  569. list1 = [1001, 1002, 1003, 1004]
  570. list2 = ['Tom', 'Jerry', 'Spike', 'Tyke']
  571. 生成的字典为:
  572. {1001: 'Tom', 1002:'Jerry', .....}
  573.  
  574. 2. 输入任意个学生的姓名,年龄,成绩,每个学生的信息存入字典中,然后放入至列表中,每个学生的信息需要手动输入
  575. 当输入姓名为空时结束输入:
  576. 如:
  577. 请输入姓名: xiaozhang
  578. 请输入年龄: 20
  579. 请输入成绩: 100
  580. 请输入姓名: xiaoli
  581. 请输入年龄: 18
  582. 请输入成绩: 98
  583. 请输入姓名: <回车> 结束输入
  584. 要求内部存储格式如下:
  585. [{'name':'xiaozhang', 'age':20, 'score':100},
  586. {'name':'xiaoli', 'age':18, 'score':98}]
  587. 打印所有学生的信息如下:
  588. +---------------+----------+----------+
  589. | name | age | score |
  590. +---------------+----------+----------+
  591. | xiaozhang | 20 | 100 |
  592. | xiaoli | 18 | 98 |
  593. +---------------+----------+----------+
  594.  
  595. 集合练习:
  596. 经理有: 曹操,刘备,孙权
  597. 技术员有: 曹操,孙权,张飞,关羽
  598. 用集合求:
  599. 1) 即是经理,也是技术员的有谁?
  600. 2) 是经理,但不是技术员的人员都有谁?
  601. 3) 是技术员,不是经理的都有谁
  602. 4) 张飞是经理吗?
  603. 5) 身兼一职的人都有谁?
  604. 6) 经理和技术员共有几个人?
  605.  
  606. 练习:
  607. 任意输入一些数字,存于列表L中。当输入负数时结束输入
  608. 1) 打印这些数的和
  609. 2) 打印这些数有多少种(去重)
  610. 3) 除重复的数字后,打印这些剩余数字的和
  611.  
  612. 提示,可以用集合去重
  613.  
  614. 练习:
  615. 1. 写一个函数myadd, 此函数中的参数列表里有两个参数x, y
  616. 此函数的功能是打印 x + y 的和
  617.  
  618. def myadd(....):
  619. .... # 注: .... 部是是我们要填写代码的地方
  620.  
  621. myadd(100, 200) # 300
  622. print("ABC", "123") # ABC123
  623.  
  624. 2. 写一个函数 mysum, 传入一个参数x代表终止整数,
  625. 打印出 1 + 2 + 3 + 4 + ..... + x的和
  626. def mysum(x):
  627. ....
  628.  
  629. mysum(100) # 5050
  630. mysum(4) # 10
  631.  
  632. return 语句
  633. 语法:
  634. return [表达式]
  635. 注: [] 代表可省略
  636. 作用:
  637. 用于函数中,结束当前函数的执行,返回到调用该函数的地方,同时返回一个对象的引用关系
  638.  
  639. return 语句说明
  640. 1. return 语句后跟的表达式可以省略,省略后相 当于return None
  641. 2. 如果函数内没有return 语句,则函数执行完最后一条语句后返回None(相当于在最后加了一条return None语句)
  642. 示例见:
  643. return.py
  644.  
  645. 练习:
  646. 1. 写一个函数 mymax, 给函数传递两个参数,返回两个实参中最大的一个
  647. def mymax(a, b):
  648. ....
  649.  
  650. v = mymax(100, 200)
  651. print('v =', v) # v = 200
  652. print(mymax('ABC', 'abc')) # abc
  653.  
  654. 2. 写一个函数 input_number
  655. def input_number():
  656. ....
  657.  
  658. 此函数用来获取用户循环输入的整数,当用户输入负数时结束输入。将用户输入的数字以列表的形式返回,再用内建函数max, min, sum取出户输入的最大值,最小值及和
  659.  
  660. L = input_number()
  661. print(L) # 打印此列表
  662. print("用户输入的最大数是:", max(L))
  663. print("用户输入的最小数是:", min(L))
  664. print("用户输入的数的和是:", sum(L))
  665.  
  666. 练习:
  667. 1. 写一个函数 print_odd, 打印从begin开始,到end结束(不包含end)内的全部的奇数
  668. def print_odd(begin, end):
  669. ....
  670.  
  671. print_odd(1, 10) # 打印 1 3 5 7 9d
  672. ptint_odd(10, 20) # 打印 11 13 15 17 19
  673.  
  674. 2. 定义两个函数:
  675. sum3(a, b, c) 用于返回三个数的和
  676. pow3(x) 用于返回x的三次方
  677. 用以上函数计算:
  678. 1. 计算1的立方 + 2的立方 + 3的立方的和
  679. 即: 1**3 + 2**3 + 3**3的和
  680. 2. 计算1 + 2 + 3 的和的立方,
  681. 即:(1+2+3)**3
  682.  
  683. 3. 改写之前的学生信息管理程序
  684. 改为两个函数:
  685. 1. 写一个函数 input_student() 用于返回学生信息的字典的列表(以前格式一样)
  686. 2. 写一个函数 output_student(lst)
  687. 此函数传入一个列表lst,即字典的列表
  688. 此函数把lst的内容以表格形式打印出来
  689. def input_student():
  690. ....
  691.  
  692. def output_student(lst):
  693. ...
  694.  
  695. L = input_student() # 获取学生信息的列表
  696. output_student(L) # 把L 以列表的形式打印
  697.  
  698. 练习:
  699. 写一个函数minmax(a, b, c) 有三个参数,这回这三个参数中的最小值和最大值,
  700. 要求,形成元组,最小值在前,最大值在后,如:
  701.  
  702. def minmax(a, b, c):
  703. ...
  704.  
  705. t = minmax(11, 33, 22)
  706. print(t) # (11, 33) # <<< 打印元组
  707. xiao, da = minmax(6, 5, 4)
  708. print('最小值:', xiao, '最大值:', da)
  709.  
  710. 练习:
  711. 写一个函数 myadd, 此函数可以计算两个数的和,也可以计算三个数的和
  712.  
  713. def myadd(......):
  714. ....
  715. print(myadd(10, 20)) # 30
  716. print(myadd(100, 200, 300)) # 600
  717.  
  718. 2. 写一个函数,print_odd, 此函数可以传递一个实参,也可以传递两个实参,当传递一个实参时代表结束值
  719. 当传递两个实参时,第一个实参代表起始值,第二个实参代表结束值
  720. 打印出以此区间内的全部奇数,不包含结束数:
  721.  
  722. print_odd(10) # 1 3 5 7 9
  723. print_odd(11, 20) # 11 13 15 17 19
  724.  
  725. 练习:
  726. 写一个函数, mysum可以传入任意个实参的数字,返回所有实参的和
  727.  
  728. def mysum(*args):
  729. ...
  730. print(mysum(1, 2, 3, 4)) # 10
  731. print(mysum(10, 20, 30)) # 60
  732.  
  733. 练习:
  734. 写一个函数,mymax类似于 内键的函数max
  735. 详见:
  736. >>> help(max)
  737. 仿造 max 写一信mymax函数,功能与max完全相同
  738. (要求不允许调用max函数)
  739. print(mymax([6, 8, 3, 5])) # 8
  740. print(mymax(100, 200)) # 200
  741. print(mymax(1, 3, 5, 9, 7)) # 9
  742.  
  743. 思考题:
  744. 查看 >>>help(print)猜想print函烽的参数列表 是如何定义的?
  745.  
  746. 练习:
  747. 创建一个全局变量 L = []
  748. 写一个函数:
  749. def input_number():
  750. ....
  751. 此函数每次调用将从键盘读入一些数字追加到列表L中
  752.  
  753. 如:
  754. L = []
  755. def input_number():
  756. ....
  757. input_number()
  758. print(L) # [ .... 这些是您从键盘输入的数..]
  759.  
  760. 练习:
  761. 1. 写一个函数isprime(x) 判断x是否为素数。如果是素数,返回True,否则返回False
  762.  
  763. 2. 写一个函数prime_m2n(m, n) 返回从m开始,到n结束(不包含n)范围内的素数,返回这些素数的列表并打印
  764. 如:
  765. L = prime_m2n(5, 10)
  766. print(L) [5, 7]
  767.  
  768. 3. 写一个函数pimes(n) 返回小于n的全部素数的列表,并打印这些素数
  769. 如:
  770. L = primes(10)
  771. print(L) # [2, 3, 5, 7]
  772. 1) 打印100 以内的全部素数
  773. 2) 打印200 以内的全部素数的和
  774.  
  775. 4. 编写函数 fn(n) 此函数返回下列级数的和:
  776. fn(n) = 1/(1*2) + 1/(2*3) + ....
  777. + 1/(n*(n-1)) 的和
  778.  
  779. print(fn(100))
  780.  
  781. 练习:
  782. 写一个计算公式的解释执行器
  783. 已知有如下一些函数:
  784. def myadd(x, y):
  785. return x + y
  786. def mysub(x, y):
  787. return x - y
  788. def mymul(x, y):
  789. return x * y
  790. 写一个函数,传入字符串,返回相应的函数
  791. def get_op(s):
  792. # 此函数根据字符串来返回相应的函数.
  793. # 如果传入字符串"加" 则返回myadd函数
  794. # .... '',则返回mymul函数
  795. ... 此处自己实现
  796. 主程序如下:
  797. while True:
  798. s = input("请输入计算公式: ")# 10 加 20
  799. L = s.split()
  800. a = int(L[0])
  801. b = int(L[2])
  802. fn = get_op(L[1])
  803. print("结果是:", fn(a, b)) # 30
  804. 练习:
  805. 写一个函数叫hello(name),部分代码如下:
  806. count = 0
  807. def hello(name):
  808. print('你好', name)
  809. ... 此处代码省略,需要同学们自己填写
  810. ... 此处代码需要改变全局变量来记录此函数曾经被调用过多少次.
  811.  
  812. hello('小张')
  813. hello('小李')
  814. print('hello 函数被调用', count, '') # 2次
  815.  
  816. 练习:
  817. 1. 写一个lambda 表达式,判断这个数的2次方+1是否能被5整除,如果能被整除返回True, 否则返回False
  818. 例:
  819. fa = lambda x: .....
  820. print(fa(2)) # True
  821. print(fa(4)) # False
  822.  
  823. 2. 写一个lambda表达式,求两个变量的最大值
  824. 例如:
  825. def mymax(x, y):
  826. ...
  827. mymax = lambda ...
  828. print(mymax(100, 200)) # 200
  829.  
  830. 练习:
  831. 1. 给出一个整数n,写一个函数myfac来计算n!(n的阶乘)
  832. n! = 1 * 2 * 3 * 4 * ..... * n
  833. 如:
  834. print(myfac(5)) # 120
  835. 2. 给出一个整数n,写一个函数计算myfn(n):
  836. 1 + 2**2 + 3**3 + .... + n**n的和
  837. 如:
  838. print(myfn(10)) # ???
  839. 3. 完全数:
  840. 1 + 2 + 3 = 6 (6为完全数)
  841. 1,2,3都为6的因数(因数是能被一个数x整除的整数为y,则y为x的因数)
  842. 1 x 6 = 6
  843. 2 x 3 = 6
  844. 完全数是指除自身以外的所有因数相加之和等于自身的数
  845. 求 4~5个完全数并打印出来
  846. 答案:
  847. 6
  848. 28
  849. 496
  850. ......
  851.  
  852. 4 实现带有界面的学生信息管理系统
  853. 程序启动时先弹出操作菜单:
  854. +-------------------------+
  855. | 1) 添加学生信息 |
  856. | 2) 显示学生信息 |
  857. | 3) 删除学生信息 |
  858. | 4) 修改学生成绩 |
  859. | q) 退出 |
  860. +-------------------------+
  861. 请选择: 1
  862. 要求 :
  863. 每个选择都要有一个函数来实现
  864.  
  865. 练习:
  866. 1. 用map函数求:
  867. 1**3 + 2**3 + 3 ** 3 + .... 9**3 的和
  868.  
  869. 2. 用map函数求:
  870. 1**4 + 2**4 + 3 ** 4 + .... 20**4 的和
  871.  
  872. 提示: sum(map(.....))
  873.  
  874. 练习:
  875. 1. 将 1 ~ 20 的偶数用filter生成可迭代对象后将可迭代对象生成的数放入到列表L中
  876.  
  877. 2. 写一个函数is_prime(x) 判断x是否是素数
  878. 用filter函数打印出: 20 ~ 30之间的全部素数
  879.  
  880. 练习:
  881. names = ['Tom', 'Jerry', 'Spike', 'Tyke']
  882. 排序的依据为字符串的反序:
  883. 'moT' yrreJ ekipS ekyT
  884. 结果:
  885. ['Spike', 'Tyke', 'Tom', 'Jerry']
  886.  
  887. 练习:
  888. 写函数 mysum(n)用递归方式实现求和
  889. def mysum(n):
  890. # 用递归方式求和
  891. ...
  892.  
  893. print(mysum(100)) # 5050
  894.  
  895. 思考题:
  896. 已知五位朋友在一起
  897. 第五位朋友比第四位朋友大2岁
  898. 第四位朋友比第三位朋友大2岁
  899. 第三位朋友比第二位朋友大2岁
  900. 第二位朋友比第一位朋友大2岁
  901. 第一位朋友说它10岁
  902.  
  903. 练习:
  904. 1. 已知五位朋友在一起
  905. 第五位朋友比第四位朋友大2岁
  906. 第四位朋友比第三位朋友大2岁
  907. 第三位朋友比第二位朋友大2岁
  908. 第二位朋友比第一位朋友大2岁
  909. 第一位朋友说它10岁
  910. 写程序打印出第五位朋友 和第三位朋友 的年龄
  911.   2. 已知有列表:
  912. L = [[3, 5, 8], 10, [[13, 14], 15, 18], 20]
  913. 1) 写一个函数print_list(lst) 打印出所有元素
  914. print(L) # 打印 3 5 8 10 13 14 ....
  915. 2) 写一个函数sum_list(lst) 返回这个列表中所有元素的和
  916. print(sum_list(L)) # 86
  917. 注:
  918. type(x) 可以返回一个变量的类型
  919. 如:
  920. >>> type(20) is int # True
  921. >>> type([1, 2, 3]) is list # True
  922.  
  923. 3. 改写之前的学生信息管理程序
  924.   要求添加四个功能:
  925. | 5) 按学生成绩高-低显示学生信息 |
  926. | 6) 按学生成绩低-高显示学生信息 |
  927. | 7) 按学生年龄高-低显示学生信息 |
  928. | 8) 按学生年龄低-高显示学生信息 |
  929.  
  930. 练习:
  931. 1. 输入一个圆的半径,打印出这个圆的面积
  932. 2. 输入一个圆的面积,打印出这个圆的半径
  933.  
  934. (要求用math模块内的函数和数据实现)
  935.  
  936. 练习:
  937. 写一个程序,输入你的出生日期,
  938. 1) 算出你已经出生多少天?
  939. 2) 算出你出生的那天是星期几?
  940.  
  941. 练习:
  942. 1. 请编写函数fun 其功能是计算下列多项式的和:
  943. fn = 1 + 1/1! + 1/2! + 1/3! + 1/4! + .. + 1/n!
  944. (建义用数学模块的factorial实现)
  945. 求当n 等于100时,fn的值
  946. 看一下fn(100)的值是什么
  947. 2. 写一个程序,以电子时钟格式:
  948. HH:MM:SS格式显示时间
  949. 要求每隔一秒变化一次
  950.  
  951. 3 写函数f(n)求下多项式的和
  952. fn = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 .... 1/(2*n-1)的和
  953.  
  954. 求当n取值为1000000时,
  955. 1) 打印 f(1000000) 的值
  956. 2) 打印 f(1000000) * 4的值,看看是什么
  957.  
  958. 练习:
  959. 1. 猜数字游戏
  960. 随机生成一个 0~100之间的一个整数,用变量x绑定
  961. 让用户输入一个数y,输出猜数字的结果:
  962. 1) 如果y大于x则提示: "您猜大了"
  963. 2) 如果y小于x则提示: "您猜小了"
  964. 3) 如果y等于生成的数x,则提供示用户"恭喜您猜对了 "并退出猜数字
  965. 循环重复上述步聚,直到猜对为止。
  966. 猜对了,显示用户猜数字的次数,然后退出程序
  967.  
  968. 练习:
  969. 1. 写一个闹钟程序,启动时设置定时时间,
  970. 到时间后打印一句"时间到...." 然后退出程序
  971.  
  972. 2. 模拟斗地主发牌,扑克牌共54张
  973. 黑桃('\u2660'), 梅花('\u2663'), 方块('\u2665'), 红桃('\u2666')
  974. A2-10JQK
  975. 大王、小王
  976. 三个人玩,每人发17张牌,底牌留三张
  977. 输入回车, 打印出第1个人的17张牌
  978. 输入回车, 打印出第2个人的17张牌
  979. 输入回车, 打印出第3个人的17张牌
  980. 输入回车, 打印三张底牌
  981. 3. 修改学生信息管理程序,将原student_info.py 拆分为模块
  982. 要求:
  983. 1. 主事件循环放在main.py中
  984. 2. show_menu 函数放在menu.py中
  985. 3. 与学生操作相关的函数放在 student_info.py中
  986.  
  987. 练习:
  988. 写一个函数 get_score() 来获取学生成绩,
  989. 要求用户输入 1~100的整数,输果输入出现异常,返此函数返回0,
  990. 否则返回用户输入的成绩
  991. 示例:
  992. def get_score():
  993. ...
  994. score = get_score()
  995. print("学生的成绩是:", score)
  996.  
  997. python中全部的错误类型:
  998. 参见文档:
  999. python_base_docs_html/Python全部的异常类型.html
  1000.  
  1001. 练习:
  1002. 写一个函数 get_age()用来获取一个人的年龄信息
  1003. 此函数规定用户只能输入1~140之间的整数,如果用户输入其它的数则直接触发ValueError类型的错误通知
  1004. 如果用户输入的年龄大于140,则触发
  1005. ValueError("年龄超出了正常值")
  1006. 如果用户输入的年龄小于1,则触发
  1007. ValueError("年龄太小...")
  1008. def get_age():
  1009. ...
  1010. try:
  1011. age = get_age()
  1012. print("用户输入的年龄是:", age)
  1013. except ValueError as err:
  1014. print('用户输入的不是1~140的整数,获取年龄失败')
  1015. print("原因是:", err)
  1016.  
  1017. 练习:
  1018. 1. 一个球从100米高空落下,每次落地后反弹高度是原高度的一半,再落下,
  1019. 1) 写程序算出皮球在第10次落地后反弹高度是多高?
  1020. 2) 打印出球共经过多少米的路程
  1021.  
  1022. 2. 分解质因数, 输入一个正整数,分解质因数,
  1023. 如:
  1024. 输入: 90
  1025. 则打印:
  1026. '90=2*3*3*5'
  1027. (质因数是指最小能被原数整除的素数(不包括1))
  1028.  
  1029. 3. 修改原学生信息管理程序,加入异常处理语句,让程序在任何情况下都能够按逻辑正常执行.
  1030. 例如:
  1031. 输入成绩和年龄时,如果用户输入非法字符串也不会导致程序崩溃
  1032.  
  1033. 练习:
  1034. 有一个集合:
  1035. s = {'唐僧', '悟空', '八戒', '沙僧'}
  1036. 用 for语句来遍历所有元素如下:
  1037. for x in s:
  1038. print(x)
  1039. else:
  1040. print('遍历结束')
  1041. 请将上面的for语句改写为 用while语句和迭代器实现
  1042.  
  1043. 练习:
  1044. 写一个生成器函数 myeven(start, stop)
  1045. 此函数用来生成从 start开始到stop结束(不包含)区间内的一系列偶数
  1046. def myeven(start, stop):
  1047. ....
  1048.  
  1049. evens = list(myeven(10, 20))
  1050. print(evens) # [10, 12, 14, 16, 18]
  1051. for x in myeven(21, 30):
  1052. print(x) # 22, 24, 26, 28
  1053.  
  1054. L = [x**2 for x in myeven(3, 10)]
  1055. print(L) # 16 36 64
  1056.  
  1057. 练习:
  1058. 已知有一个列表L
  1059. L = [2, 3, 5, 7]
  1060. 用生成器表达式从此列表中拿到数,生成 列表中数据的平方
  1061.  
  1062. gen = ...... # 此处用生成器表达式实现
  1063. L2 = list(gen) # L2 = [4, 9, 25, 49]
  1064.  
  1065. 思考:
  1066. L = [2, 3, 5, 7]
  1067. L2 = [x ** 2 for x in L] # 列表推导式
  1068. it = iter(L2)
  1069. print(next(it)) # 4
  1070. L[1] = 10
  1071. print(next(it)) # 9
  1072.  
  1073. L = [2, 3, 5, 7]
  1074. G3 = (x ** 2 for x in L) # 生成器表达式
  1075. it = iter(G3)
  1076. print(next(it)) # 4
  1077. L[1] = 10
  1078. print(next(it)) # 100
  1079.  
  1080. 练习:
  1081. 写一个程序,读入任意行的文字,当输入空行时结束输入
  1082. 打印带有行号的输入结果:
  1083. 如:
  1084. 请输入: hello<回车>
  1085. 请输入: world<回车>
  1086. 请输入: tarena<回车>
  1087. 请输入: <回车> # 直接回车结束输入
  1088. 输出如下:
  1089. 第1行: hello
  1090. 第2行: world
  1091. 第3行: tarena
  1092.  
  1093. 练习:
  1094. 写一个程序,从键盘输入一段字符串存入s变量
  1095. 1. 将此字符串转为字节串用变量b绑定,并打印出b
  1096. 2. 打印字符串s的长度和字节串b的长度
  1097. 3. 将b字节串再转换为字符串用变量s2 绑定,判断 s2 和 s是否相同?
  1098.  
  1099. 练习:
  1100. 1. 写一个生成器函数primes生成素数,
  1101. 此生成器函数为 primes(begin, end)
  1102. 如: [x for x in primes(10, 20)] 将得到列表
  1103. [11, 13, 17, 19]
  1104. 2. 写一个生成器函数,生成斐波那契数列的前n个数
  1105. 1 1 2 3 5 8 13
  1106. def fibonacci(n):
  1107. ...
  1108. yield...
  1109. 1) 输出前20个数:
  1110. for x in fibonacci(20):
  1111. print(x)
  1112. 2) 打印前40个数的和:
  1113. print(sum(fibonacci(40)))
  1114. 3. 写程序打印杨辉三角(只打印6层)
  1115. 1
  1116. 1 1
  1117. 1 2 1
  1118. 1 3 3 1
  1119. 1 4 6 4 1
  1120. 1 5 10 10 5 1
  1121.  
  1122. 练习:
  1123. 自己写一个文件 'info.txt' 内部存一些文字信息
  1124. 如:
  1125. 张三 20 100
  1126. 李四 21 96
  1127. 小王 22 98
  1128. 写程序将这些数据读取出来,打印到终端上
  1129.  
  1130. 练习:
  1131. 1. 写程序,循环输入很多个人的姓名,电话号码,
  1132. 当输入结束后将这些信息存入到文件phonenumber.txt中
  1133. (建议先用列表暂存数据,格式自己定义)
  1134.  
  1135.   2. 写程序,将phonenumber.txt文件中的数据读取出来.
  1136.      再用以下格式打印出来:
  1137. 如:
  1138. 小张 的电话是 13888888888
  1139. 小李 的电话是 13999999999
  1140.  
  1141. 练习:
  1142. 1. 写程序实现复制文件的功能
  1143. 要求:
  1144. 1. 要考虑特大文件问题
  1145. 2. 要关闭文件
  1146. 3. 要能复制二进制文件
  1147. 如:
  1148. 请输入源文件路径名: /home/tarena/xxx.tar.gz
  1149. 请输入目标文件路径名: ./a.tar.gz
  1150. 显示:
  1151. 文件已成功复制
  1152.  
  1153. 2. 修改学生信息管理程序,要求加入两个功能:
  1154. 9) 保存信息到文件(si.txt)
  1155. 10) 从文件中读取数据(si.txt)
  1156.  
  1157. 练习:
  1158. 自己写一个''类: Human
  1159. class Human:
  1160. def set_info(self, name, age, address='未知'):
  1161. '''此方法用来给人对象添加'姓名', '年龄', '家庭住址'三个属性'''
  1162. ... # << 此处自己实现
  1163. def show_info(self):
  1164. '''显示此人的全部信息'''
  1165. ... # 此处自己实现
  1166. 如:
  1167. h1 = Human()
  1168. h1.set_info('小张', 20, '北京市朝阳区')
  1169. h2 = Human()
  1170. h2.set_info('小李', 18)
  1171. h1.show_info() # 小张今年 20 岁,家庭住址:北京市朝阳区
  1172. h2.show_info() # 小李今年 18 岁,家庭住址:末知
  1173.  
  1174. 练习:
  1175. 写一个Student类
  1176. 1) 为该类添加初始化方法, 实现在创建对象时自动设置
  1177. '姓名','年龄', '成绩' 属性
  1178. 2) 添加set_score方法能修改成绩信息
  1179. 3) 添加show_info方法打印学生对象的信息
  1180.  
  1181. 如:
  1182. class Student:
  1183. def __init__(...):
  1184. ...
  1185. ...
  1186.  
  1187. s1 = Student('小王', 15, 59)
  1188. s1.show_info() # 小王 今年 17 岁, 成绩是: 59
  1189. s1.set_score(80)
  1190. s1.show_info() # 小王 今年 17 岁, 成绩是: 80
  1191.  
  1192. 面向对向的综合示例:
  1193. 有两个人(Human):
  1194. 1.
  1195. 姓名: 张三
  1196. 年龄: 35
  1197. 2.
  1198. 姓名: 李四
  1199. 年龄: 8
  1200. 行为:
  1201. 1. 教别人学东西 teach
  1202. 2. 赚钱 works
  1203. 3. 借钱 borrow
  1204. 事情:
  1205. 张三 教 李四 学 python
  1206. 李四 教 张三 学 跳皮筋
  1207. 张三 上班赚了 1000 元钱
  1208. 李四 向 张三 借了 200 元钱
  1209. 打印张三的信息: 35岁 的 张三 有钱 800元, 它学会跳皮筋
  1210. 打印李四的信息: 8岁 的 李四 有钱 200元, 它学会python
  1211. 练习:
  1212. 修改原来的学生信息管理程序,将原来字典来存储学生信息,
  1213. 现改为用对象来存储学生信息
  1214. # file : student.py
  1215. class Student:
  1216. def __init__(self, n, a, s):
  1217. ....
  1218.  
  1219. L = []
  1220. # L.append({...}) 改为对象
  1221. L.append(Student('xiaozhang', 20, 100))
  1222.  
  1223. (要求类Student 要写在模块 student.py中)
  1224.  
  1225. 练习:
  1226. 用类来描述一个学生的信息(可以修改之前写的Student类)
  1227. class Student:
  1228. .... 此处自己实现
  1229.  
  1230. 学生信息有:
  1231. 姓名, 年龄, 成绩
  1232.  
  1233. 将一些学生的对象存于列表中,可以任意添加和删除学生信息
  1234. 1) 打印出学生的个数
  1235. 2) 打印出所有学生的平均成绩
  1236. 3) 打印出所有学生的平均年龄
  1237.  
  1238. 思考:
  1239. list类里只有一个append向末尾加一个元素的方法,但没有向列表头部添加元素的方法,试想能否为列表在不改变原有类的基础上添加一个insert_head(n) 方法,实现在列表的头部(前部)添加元素
  1240. 如:
  1241. class MyList(list):
  1242. def insert_head(self, n):
  1243. ... # 需要自己添加代表
  1244.  
  1245. myl = MyList(range(3, 6))
  1246. print(myl) # [3, 4, 5]
  1247. myl.insert_head(2)
  1248. print(myl) # [2, 3, 4, 5]
  1249. myl.append(6)
  1250. print(myl) # [2, 3, 4, 5, 6]
  1251.  
  1252. 练习:
  1253. 1. 看懂学生管理程序,每一步做的事情及思想
  1254. 2. 把同学们自己的学生信息管理程序用Student学生对象来存储信息;要求,不要在外部直接操作学生的属性,所有操作行为用方法来代替
  1255.  
  1256. 练习:
  1257. 写一个类Bicycle类 ,有 run方法.调用时显示骑行里程km
  1258. class Bicycle:
  1259. def run(self, km):
  1260. print('自行车骑行了', km, '公里')
  1261. 再写一个类EBicycle(电动自行车类), 在Bicycle类的基础上添加了电池电量 volume 属性, 有两个方法:
  1262. 1. fill_charge(self, vol) 用来充电, vol为电量
  1263. 2. run(self, km) 方法每骑行10km消耗电量1度,同时显示当前电量,当电量耗尽时调用 父类的run方法继续骑行
  1264.  
  1265. b = EBicycle(5) # 新买的电动有内有5度电
  1266. b.run(10) # 电动骑行了10km还剩 4 度电
  1267. b.run(100) #电动骑行了40km,还剩0度电,其余60用脚登骑行
  1268. b.fill_charge(10) # 又充了10度电
  1269. b.run(50) # 骑行了50公里剩5度电
  1270.  
  1271. 练习:
  1272. 1. 修改原有的学生信息管理系统, 将学生对象的,全部属性
  1273. 都变为私有属性,不让外部直接访问来实现封装
  1274.  
  1275. 2. 写一个列表类MyList实现存储整数列表,写类的定义如下:
  1276. class MyList:
  1277. def __init__(self, iterator):
  1278. self.data = ...
  1279. 让此类的对象能用for语句进行迭代访问
  1280.  
  1281. L = MyList(range(5))
  1282. print(L)
  1283. L2 = [x ** 2 for x in L]
  1284. print(L2) # [0, 1, 4, 9, 16]
  1285.  
  1286. 3. 写一个类Fibonacci 实现迭代器协议 ,此类的对象可以作为可迭代对象生成相应的斐波那契数
  1287. 1 1 2 3 5
  1288. class Fibonacci:
  1289. def __init__(self, n) # n代表数据的个数
  1290. ...
  1291. ...
  1292. 实现如下操作:
  1293. for x in Fibonacci(10):
  1294. print(x) # 1 1 3 5 8 ....
  1295. L = [x for x in Fibonacii(50)]
  1296. print(L)
  1297. F = fibonicci(30)
  1298. print(sum(F))
  1299.  
  1300. 练习:
  1301. 1. 实现两个自定义的列表相加
  1302. class MyList:
  1303. .... 此处自己实现
  1304. L1 = MyList([1, 2, 3])
  1305. L2 = MyList(range(4, 7))
  1306. L3 = L1 + L2
  1307. print(L3) # MyList([1, 2, 3, 4, 5, 6])
  1308. L4 = L2 + L1
  1309. print(L4) # MyList([4, 5, 6, 1, 2, 3])
  1310. L5 = L1 * 2
  1311. print(L5) # MyList([1, 2, 3, 1, 2, 3])
  1312.  
  1313. 练习:
  1314. 实现有序集合类 OrderSet() 能实现两个集合的交集 &,全集 |,
  1315. 补集 - 对称补集 ^, ==/!= , in/ not in 等操作
  1316. 要求集合内部用 list 存储
  1317. class OrderSet:
  1318. ...
  1319. s1 = OrderSet([1, 2, 3, 4])
  1320. s2 = OrderSet([3, 4, 5])
  1321. print(s1 & s2) # OrderSet([3, 4])
  1322. print(s1 | s2) # OrderSet([1, 2, 3, 4, 5])
  1323. print(s1 ^ s2) # OrderSet([1, 2, 5])
  1324. if OrderSet([1, 2, 3]) != OrderSet([3, 4, 5]):
  1325. print("不相等")
  1326. if s2 == OrderSet(3, 4, 5):
  1327. print('s2 == OrderSet(3, 4, 5) is True')
  1328. if 2 in s1:
  1329. print("2在 s1中")

Python全栈工程师 (exercises)的更多相关文章

  1. Python全栈工程师(装饰器、模块)

    ParisGabriel                每天坚持手写  一天一篇  决定坚持几年 全栈工程师     Python人工智能从入门到精通 装饰器 decorators(专业提高篇) 装饰 ...

  2. Python全栈工程师(递归函数、闭包)

    ParisGabriel            每天坚持手写  一天一篇  决定坚持几年 全栈工程师     Python人工智能从入门到精通 函数式编程: 是指用一系列函数解决问题 每一个函数完成细 ...

  3. 【目录】python全栈工程师

    第一阶段:Python 语言核心编程1. Python核心   -- 2048 游戏核心算法2. 面向对象   -- 天龙八部游戏技能系统3. Python高级   -- 集成操作框架项目:2048游 ...

  4. Python全栈工程师之从网页搭建入门到Flask全栈项目实战(1) - ES6标准入门和Flex布局

    1.简述 1.什么是ES6?ES6, 全称 ECMAScript 6.0,是 JavaScript 的下一个版本标准,2015年6月份发版.ES6的主要目的是为了解决 ES5 的先天不足. 2.了解E ...

  5. Python全栈工程师(exercises)

    # # 练习: # # 1. 用map函数求: # # 1**3 + 2**3 + 3 ** 3 + .... 9**3 的和 def add_(x): return x ** 3 print(sum ...

  6. Python全栈工程师(Python3 所有基础内容 0-0)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图     Python一个月的基础语法 基本就到这咯    接下来是数据 ...

  7. Python全栈工程师(包、模块 的导入)

    ParisGabriel                每天坚持手写  一天一篇  决定坚持几年 为了梦想 为了信仰     Python人工智能从入门到精通 $ pip3 install tenso ...

  8. Python全栈工程师(Python3 所有基础内容 0-0)

    转发:https://www.cnblogs.com/ParisGabriel/p/9388030.html statements  语句print   输出quit()  退出exit() 退出ct ...

  9. Python全栈工程师(每周总结:3)

     ParisGabriel                                                           每天坚持 一天一篇 点个订阅吧  灰常感谢    当个死 ...

随机推荐

  1. [Pytorch] pytorch笔记 <三>

    pytorch笔记 optimizer.zero_grad() 将梯度变为0,用于每个batch最开始,因为梯度在不同batch之间不是累加的,所以必须在每个batch开始的时候初始化累计梯度,重置为 ...

  2. caffe resize用interpolation

    opencv的resize默认的是使用双线性插值INTER_LINEAR,也可以是尝试其他的方式进行插值操作 if (param.random_interpolation_method()) { // ...

  3. tensorflow与android编译

    我的过程: 1.下载tensorflow 2.下载ndk.sdk然后放到了tensorflow的目录下 3,修改workspace 4.运行命令:bazel build -c opt //tensor ...

  4. 谷歌浏览器兼容IE插件

    谷歌浏览器兼容IE插件 http://pan.baidu.com/s/1i31hspf

  5. JS isArray、typeof、instanceof

    Array.isArray() 用来检验是不是数组 var a = [1,2,3] console.log(typeof a); // object console.log(Array.isArray ...

  6. .net core自定义特性操作

    最近移植之前写的几个类,发现特性操作发生了一些改变. 直接看代码,建立表和字段特性类,添加一个用户表,设置好特性. using System; namespace TestDemo { /// < ...

  7. ReactiveCocoa,最受欢迎的iOS函数响应式编程库(2.5版),没有之一!

    简介 项目主页: ReactiveCocoa 实例下载: https://github.com/ios122/ios122 简评: 最受欢迎,最有价值的iOS响应式编程库,没有之一!iOS MVVM模 ...

  8. 在windows7上配置xampp虚拟主机

    在设置之前最好关闭xampp1.修改hosts文件进入C:\Windows\System32\drivers\etc目录,找到hosts文件.在# Localhost (DO NOT REMOVE) ...

  9. discuz 被入侵后,最可能被修改的文件

    最近发现站点被黑了,现在还不知道是由系统漏洞导致的系统账户被攻陷,还是程序漏洞,文件被篡改.有一些敏感关键词(例如:赌博,电子路单)被恶意指向,点击搜索结果自动跳转到其他站点,而且是大量的,通过搜索“ ...

  10. js字节转换、字节格式化函数

    有时候在上传附件后需要显示大小,可以选择在后台处理,也可以在前台用js处理. 比如我们想1024MB转换成1GB,那就需要进行转换,这里只是介绍用js进行转换. function bytesToSiz ...