Python 学习 --- 基础知识

秒速五厘米 2022-08-02 02:16 423阅读 0赞
  1. 第一章
  2. 1python1989年底由范.罗萨姆始创。是一种面向对象的解释型语言。
  3. 第二章 python起步
  4. 1、输出语句print.
  5. print和%结合使用,实现字符串的替换,与C语言中的prtinf()函数类似.print默认输出换行
  6. >>> print ‘%s is a num: %d % (‘Python’, 45)
  7. %s : 字符串; %d: 数字; %f: 浮点数.
  8. 2、输入语句raw_input().
  9. >>> user = raw_input(‘Enter a number:’)
  10. Enter a number:34
  11. >>> user
  12. 34
  13. 从标准输入流读取一个字符串自动删除串尾换行符,转换为字符串返回,将其赋值给user
  14. (1)int():将数值字符串转换为整型
  15. >>> num = raw_input(‘Enter a num:’)
  16. Enter a num: 4
  17. >>> print Double num is: %d % (int(num)*2)
  18. Double num is:8
  19. 3、下划线:_表示最后一个表达式的值.
  20. >>> user = 34
  21. >>> _
  22. 34
  23. 4、注释
  24. Python使用#标志注释.从#开始一直到一行结束内容都是注释.
  25. 5、运算符
  26. 算术运算符:+ - * / // % **
  27. /:传统除法
  28. >>> 4/3
  29. 1
  30. >>>4.1/3
  31. 1.36666666666666665
  32. 整数相除,取比商小的最大整数;浮点数相除,取实际值.
  33. //:浮点除法
  34. >>> 4//3
  35. 1
  36. >>> 4.1/3
  37. 1.0
  38. 整数/浮点数相除,对结果四舍五入.
  39. **:乘方运算
  40. >>> 2**2
  41. 4
  42. >>> 2**3
  43. 8
  44. >>> 2**4
  45. 16
  46. 注:乘方的优先级最高
  47. 比较运算符:< <= > >= == != <>
  48. != <> 都表示不等于
  49. >>> 3 < 4
  50. True
  51. >>> 3 > 4
  52. False
  53. 逻辑运算符:and or not
  54. >>> 3 < 4 and 4 < 5
  55. True
  56. >>> 3 < 4 < 5
  57. True
  58. >>> not 4 > 6
  59. True
  60. 6、变量
  61. Python变量的命名与其他编程语言相同,可以是字母/数字/下划线,但是变量名不能以数字开头.并且python无需预先声明变量的类型.
  62. 1python支持增量赋值:
  63. n = n * 10 <=> n *= 10
  64. 2python不支持自增一和自减一
  65. >>> n = 2
  66. >>> ++n
  67. 2
  68. >>> --n
  69. 2
  70. 7、数字
  71. Python支持5种数字类型:
  72. Int(有符号整数) long(长整数) bool(布尔值) float(浮点值) complex(复数)
  73. 其中,int ,long , bool 都是整数类型.bool值是一种特殊的整数,在一个数值的上下文中,True1, False0
  74. >>> 1 + (3<4)
  75. 2
  76. 8、字符串
  77. 成对的单引号,双引号,三引号(三个连续的单引号或者双引号)之间的内容都是字符串.
  78. 索引运算符:[] ; 切片运算符:[ :] 用来得到子字符串.[a:b]表示获取从索引为ab之间的字符串(包含a但不包含b指向的字符).如果不指定a,默认是从开始字符到b;如果不指定b,默认是从a到字符串结尾
  79. +:用于字符串连接; *:用于字符串重复.
  80. 字符串索引规则:第一个字符索引为0, 最后一个为-1
  81. >>> user = 'Hello World'
  82. >>> user[0]
  83. 'H'
  84. >>> user[-1]
  85. 'd'
  86. >>> user[0:-1]
  87. 'Hello Worl'
  88. >>> user[2:6]
  89. 'llo '
  90. >>> user + ' ' + user
  91. 'Hello World Hello World'
  92. >>> user * 3
  93. 'Hello WorldHello WorldHello World'
  94. 9、列表和元组
  95. 列表和元组都可以当成普通的’数组’,能保存任意类型的python对象,索引从0开始,但是列表和元组可以存储不同类型的对象.
  96. 区别:
  97. 列表用[ ]包裹,元素的个数和元素的值可以更改.通过索引运算[],切片运算[:]可以得到子集.
  98. 元组用()包裹,元素的个数和值不能更改. 通过索引运算[],切片运算[:]可以得到子集.
  99. >>> list = [1,2,3,4]
  100. >>> list
  101. [1, 2, 3, 4]
  102. >>> list[3]
  103. 4
  104. >>> list[1:3]
  105. [2, 3]
  106. >>> list[0] = 5
  107. >>> list
  108. [5, 2, 3, 4]
  109. >>> tuple = (1,2,3,4)
  110. >>> tuple
  111. (1, 2, 3, 4)
  112. >>> tuple[2]
  113. 3
  114. >>> tuple[1:3]
  115. (2, 3)
  116. >>> tuple[0] = 5 #不能更改
  117. Traceback (most recent call last):
  118. File "<stdin>", line 1, in <module>
  119. TypeError: 'tuple' object does not support item assignment
  120. 10、字典
  121. 字典由键-值(key-value)对构成.数字或字符串常用作键.字典元素用{ }包裹.
  122. >>> dict = {'Host': 'XYW'} # creat a dict
  123. >>> dict['Port'] = 80 # add element to dict
  124. >>> dict
  125. {'Host': 'XYW', 'Port': 80}
  126. >>> dict.keys()
  127. ['Host', 'Port']
  128. >>> dict['Host']
  129. 'XYW'
  130. >>> for key in dict:
  131. ... print key, dict[key]
  132. ...
  133. Host XYW
  134. Port 80
  135. 11if语句
  136. if expression #表达式非0或者为布尔值True(不要忘记后边的冒号)
  137. If_suite #代码块缩进
  138. >>> user = 4
  139. >>> if user < 5:
  140. ... print '%d < 5' % (user)
  141. ...
  142. 4 < 5
  143. if expression
  144. If_suite
  145. else
  146. else_suite
  147. >>> if user < 5:
  148. ... print '%d < 5' % (user)
  149. ... else:
  150. ... print '%d > 5' % (user)
  151. ...
  152. 4 < 5
  153. if expression1
  154. if_suite
  155. elif expression2
  156. elif_suite
  157. else:
  158. else_suite
  159. 12while循环
  160. while expression
  161. while_suite
  162. >>> user = 5
  163. >>> while user > 0:
  164. ... print 'user = %d' % (user)
  165. ... user -= 1
  166. ...
  167. user = 4
  168. user = 3
  169. user = 2
  170. user = 1
  171. 13for循环
  172. Python中的for循环和传统的(计数器类型)for循环不太一样, 它可以接受迭代对象(例如序列或者迭代器)做参数,每次迭代其中一个元素.
  173. >>> print 'I like to use the Internet for:'
  174. I like to use the Internet for:
  175. >>> for item in ['email', 'net-browsing', 'work']:
  176. ... print item,
  177. ...
  178. email net-browsing work
  179. 注:print默认会给每一行添加一个换行符,所以在print语句最后加一个逗号,就会显示在一行.
  180. (1)range()函数:
  181. range([start,] stop[, step])
  182. start:开始数值; stop:结束数值; step:每一步大小(可以为正数或负数).startstep可以省略.如果省略start,则默认是从0开始.如果省略step,则默认是每步加1,startstep可以同时省略,但是不能只省略start.
  183. >>> range(4) #省略start和step
  184. [0, 1, 2, 3]
  185. >>> range(1,5) #省略step
  186. [1, 2, 3, 4]
  187. >>> range(0,-10,-1)
  188. [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
  189. (2)for迭代每个字符:
  190. >>> user = 'Chinese'
  191. >>> for item in user:
  192. ... print item
  193. ...
  194. C
  195. h
  196. i
  197. n
  198. e
  199. s
  200. e
  201. (3)range函数和len函数结合使用可以实现普通计数器类型的for循环:
  202. >>> user = 'Chinese'
  203. >>> for i in range(len(user)):
  204. ... print user[i], '%d' % (i) #输出元素值及其索引值
  205. ...
  206. C 0
  207. h 1
  208. i 2
  209. n 3
  210. e 4
  211. s 5
  212. e 6
  213. (4)enumerate函数同时遍历索引以及元素
  214. >>> user = 'Chinese'
  215. >>> for index, value in enumerate(user):
  216. ... print '%d' % index, value
  217. ...
  218. 0 C
  219. 1 h
  220. 2 i
  221. 3 n
  222. 4 e
  223. 5 s
  224. 6 e
  225. (5)列表解析:通过操作或者处理一个序列创建一个新的列表
  226. [expr for iter_var in iterable]
  227. [expr for iter_var in iterable if cond_expr]
  228. 第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表.
  229. 第二种语法:加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表.
  230. >>> list = [x ** 2 for x in range(4)]
  231. >>> list
  232. [0, 1, 4, 9]
  233. >>> list = [x ** 2 for x in range(8) if not x % 2]
  234. >>> list
  235. [0, 4, 16, 36]
  236. 14、文件
  237. 打开文件:handle = open(filename, access_mode = r’)
  238. access_mode的方式打开文件filename.默认是只读的r.
  239. >>> fileName = raw_input('Enter a file name: ')
  240. Enter a file name: C:\\杂项\\test.txt
  241. >>> File = open(fileName, 'r')
  242. >>> for eachLine in File:
  243. ... print eachLine,
  244. ...
  245. BUS:00, DEV:00, FUN:00 = 01548086
  246. BUS:00, DEV:00, FUN:01 = FFFFFFFF
  247. BUS:00, DEV:00, FUN:02 = FFFFFFFF
  248. BUS:00, DEV:00, FUN:03 = FFFFFFFF
  249. BUS:00, DEV:00, FUN:04 = FFFFFFFF
  250. BUS:00, DEV:00, FUN:05 = FFFFFFFF
  251. BUS:00, DEV:00, FUN:06 = FFFFFFFF
  252. >>> File.close()
  253. 15、异常处理
  254. 使用try-except语句
  255. try:
  256. filename = raw_input('Enter file name: ')
  257. fobj = open(filename, 'r')
  258. for eachLine in fobj:
  259. print eachLine, fobj.close()
  260. except IOError, e:
  261. print 'file open error:', e
  262. 16、函数
  263. 函数在调用前必须先定义,如果函数中没有return语句,默认返回None对象.Python是通过引用调用的参数,在函数内对参数进行改变会影响可变对象的值.
  264. 定义方式:
  265. def function_name([arguments]):
  266. optional documentation string
  267. function_suite
  268. E.g:
  269. >>> def Add(x, y):
  270. ... 'add x and y'
  271. ... return (x + y)
  272. ...
  273. >>> Add(2, 3)
  274. 5
  275. >>> Add('I am a ', 'Boy')
  276. 'I am a Boy'
  277. >>> Add([1,2,3], [4,5,6])
  278. [1, 2, 3, 4, 5, 6]
  279. >>>
  280. 注:几乎所有的标准数据类型都支持 + 运算符,不管是数值相加还是序列合并.
  281. (1)默认参数
  282. Python可以使用默认参数
  283. #定义函数
  284. >>> def foo(debug = True):
  285. ... if debug:
  286. ... print 'in debug mode'
  287. ... print 'done'
  288. ...
  289. #调用函数
  290. >>> foo()
  291. in debug mode
  292. done
  293. >>> foo(False)
  294. done
  295. 17、类
  296. 类定义:
  297. class ClassName(base_class[es]):
  298. "optional documentation string"
  299. static_member_declarations
  300. method_declarations
  301. e.g:
  302. >>> class HelloClass(object):
  303. ... 'my first class: HelloClass'
  304. ... version = 1.0 #类成员变量
  305. ... def _init_(self, nm = 'Eliot'):
  306. ... self.name = nm
  307. ... print 'Create a class instance for ', nm
  308. ... def showName(self):
  309. ... print 'Your name is ', self.name
  310. ... print 'My name is ', self._class_._name_
  311. ... def showVer(self):
  312. ... print 'My version is ', self.version
  313. ... def addMe(self, x):
  314. ... 'add myself'
  315. ... return x + x
  316. ...
  317. 调用:
  318. hello = HelloClass()
  319. hello.showName()
  320. hello.showVer()
  321. hello.addMe(4)
  322. 注:hello. showName()在Dos下调用时有错误,而且hello=HelloClass()没有按照要求输出,可能因为没有使用可视化平台有关.
  323. #定义类时可以提供一个可选的父类或者基类,如果没有合适的基类,使用object.
  324. #所有名字开始和结束都有两个下划线的方法都是特殊方法.当一个类的实例创建时_init_()方法会自动执行,但是系统的_init_()方法是空的,所以要创建自己的_init_()方法来覆盖系统的方法,它一般用来实例化对象的某些属性.self相当于其他语言中的this,指向类实例自身的引用或者调用它的类实例.
  325. 18、模块
  326. 模块将彼此有关系的 Python 代码组织到一个个独立文件当中.通过导入模块可以使用其中的变量和方法.
  327. import module_name
  328. 19、实用的函数
  329. dir([obj]) 显示对象的属性,如果没有提供参数,则显示全局变量的名字.
  330. help([obj]) 以一种整齐美观的形式 显示对象的文档字符串,如果没有提供任何参数,则会进入交互式帮助.
  331. int(obj) 将一个对象转换为整数.
  332. len(obj) 返回对象的长度.
  333. open(fn, mode) mode('r' = 读, 'w'= 写)方式打开一个文件名为 fn 的文件.
  334. range([[start,]stop[,step]) 返回一个整数列表.起始值为 start, 结束值为 stop - 1; start默认值为0,step默认值为1.
  335. raw_input(str) 等待用户输入一个字符串,可以提供一个可选的参数str用作提示信息.
  336. str(obj) 将一个对象转换为字符串.
  337. type(obj) 返回对象的类型(返回值本身一个type对象!)
  338. 练习:
  339. 2-4
  340. >>> raw_input('Enter a num:')
  341. Enter a num:3
  342. '3'
  343. >>> user = raw_input('Enter a num:')
  344. Enter a num:4
  345. >>> int(user)
  346. 4
  347. 2-5
  348. (1)while:
  349. >>> i = 0
  350. >>> while i < 11:
  351. ... print i,
  352. ... i += 1
  353. ...
  354. 0 1 2 3 4 5 6 7 8 9 10
  355. for:
  356. >>> for i in [0,1,2,3,4,5,6,7,8,9,10]:
  357. ... print i,
  358. ...
  359. 0 1 2 3 4 5 6 7 8 9 10
  360. (2)while:
  361. >>> i = 0
  362. >>> while i in range(11):
  363. ... print i,
  364. ... i += 1
  365. ...
  366. 0 1 2 3 4 5 6 7 8 9 10
  367. for:
  368. >>> for i in range(11):
  369. ... print i,
  370. ...
  371. 0 1 2 3 4 5 6 7 8 9 10
  372. For函数定义:
  373. for_stmt ::= "for" target_list "in" expression_list ":" suite
  374. ["else" ":" suite]
  375. The for statement is used to iterate over the elements of a sequence (such as a string, tuple or list) or other iterable object:
  376. The while statement is used for repeated execution as long as an expression is true:
  377. while_stmt ::= "while" expression ":" suite
  378. ["else" ":" suite]
  379. 总结:while后接一个条件表达式,满足条件时才执行循环语句,且需要自己手动累加计数,如: i += 1,如果条件不满足,可以继续执行后面的else语句(可选).
  380. for循环是循环迭代一个字符串或者list,直至字符串或者list遍历完,继续执行后面的else语句(可选).并且不需要手动累加计数.
  381. 2-7:
  382. >>> str = raw_input('Enter a string:
  383. Enter a string:Chinese
  384. >>> i = 0
  385. >>> while i < len(str):
  386. ... print str[i]
  387. ... i += 1
  388. ...
  389. C
  390. h
  391. i
  392. n
  393. e
  394. s
  395. e
  396. >>> for i in str:
  397. ... print i
  398. ...
  399. C
  400. h
  401. i
  402. n
  403. e
  404. s
  405. e
  406. >>> for i in range(len(str)):
  407. ... print str[i]
  408. ...
  409. C
  410. h
  411. i
  412. n
  413. e
  414. s
  415. e
  416. 2-8:
  417. While:
  418. >>> list = [1,2,3,4,5]
  419. >>> i = 0
  420. >>> sum = 0
  421. >>> while i < 5:
  422. ... sum += list[i]
  423. ... i += 1
  424. ...
  425. >>> sum
  426. 15
  427. >>> tuple = (1,2,3,4,5)
  428. >>> i = 0
  429. >>> sum = 0
  430. >>> while i < 5:
  431. ... sum += tuple[i]
  432. ... i += 1
  433. ...
  434. >>> sum
  435. 15
  436. For:
  437. >>> list = [1,2,3,4,5]
  438. >>> i = 0
  439. >>> sum = 0
  440. >>> for i in list:
  441. ... sum += i
  442. ...
  443. >>> sum
  444. 15
  445. >>> tuple = (1,2,3,4,5)
  446. >>> i = 0
  447. >>> sum = 0
  448. >>> for i in tuple:
  449. ... sum += i
  450. ...
  451. >>> sum
  452. 15
  453. 用户输入list的前提是list已经有一定的数值,用户
  454. >>> list = [1,2,3,4,5]
  455. >>> i = 0
  456. >>> sum = 0
  457. >>> while i < 5:
  458. ... user = raw_input('Enter a number: ')
  459. ... list[i] = int(user)
  460. ... i += 1
  461. ...
  462. Enter a number: 1
  463. Enter a number: 2
  464. Enter a number: 3
  465. Enter a number: 4
  466. Enter a number: 5
  467. >>> list
  468. [1, 2, 3, 4, 5]
  469. 2-9:
  470. >>> list = [1,2,3,4,5,6]
  471. >>> sum = 0
  472. >>> for i in list:
  473. ... sum += i
  474. ...
  475. >>> sum/(len(list))
  476. 3
  477. >>> sum
  478. 21
  479. >>> float(sum)/(len(list))
  480. 3.5
  481. 2-10:
  482. >>> i = 0
  483. >>> while (i < 1 or i > 100):
  484. ... i = int(raw_input('Enter a number between 0 and 100: '))
  485. ... if(i < 1 or i > 100):
  486. ... print 'The number is out of range,please reput it !'
  487. ...
  488. Enter a number between 0 and 100: 110
  489. The number is out of range,please reput it !
  490. Enter a number between 0 and 100: 120
  491. The number is out of range,please reput it !
  492. Enter a number between 0 and 100: 11
  493. 注:raw_input返回的是一个字符串类型的,要转换为int型
  494. 2-11
  495. #!/usr/bin/python
  496. # -*- coding: utf-8 -*-
  497. #author:xyw
  498. #date:2012-11-22
  499. #2-11
  500. ch = 0
  501. sum = 0
  502. list = [1,2,3,4,5]
  503. while(ch != 3):
  504. print '1.求和 2.求均值 3.退出'
  505. ch = int(raw_input())
  506. if(ch == 1):
  507. print '请输入5个数字:'
  508. i = 0
  509. sum = 0
  510. while( i < 5):
  511. list[i] = int(raw_input())
  512. sum += list[i]
  513. i += 1
  514. print '和为:%d' % (sum)
  515. elif(ch == 2):
  516. print '请输入5个数字:'
  517. i = 0
  518. sum = 0
  519. while(i < 5):
  520. list[i] = int(raw_input())
  521. sum += list[i]
  522. i += 1
  523. print '均值为:%f' % (float(sum)/5)

Python学习笔记-Python起步 ———————————本文来自:http://blog.csdn.net/xyw\_blog/article/details/8234613

发表评论

表情:
评论列表 (有 0 条评论,423人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python基础知识学习框架梳理

    对于编程初学者来说,在刚刚开始学习Python语言的时候,需要学习的内容有不少,比如计算机原理、网络、Web前端、后端、架构、 数据库都是必须掌握的知识点。因此初学者常常会陷入