设为首页 收藏本站
查看: 981|回复: 0

[经验分享] [PYTHON] 核心编程笔记之二-Python起步

[复制链接]

尚未签到

发表于 2018-8-11 07:06:07 | 显示全部楼层 |阅读模式
  最近一直在学习python,所以把自己平时总结的笔记贴出来,供大家分享
  2.1 程序输入,print语句及"Hello World"
  例:取绝对值
  >>>abs(-4)
  4
  >>>abs(4)
  4
  例:print输出
  >>>myString = 'Hello World!'
  >>>print myString
  Hello World!
  >>>myString
  'Hello World!'
  注: print语句调用str()函数显示对象,而交互式解释器则调用repr()函数显示对象
  2.2 程序输入和内建函数raw_input()
  例:程序输入
  >>>print "%s is number %d!" %("python",1)
  Python is number 1!
  注:$s表示由一个字符串来替换,而%d由一个整数来替换,%f表示由一个浮点数来替换
  例:将输出重定向到标准错误输出
  >>>import sys
  >>>print >> sys.stderr, 'Fatal error: invalid input!'
  Fatal error: invalid input!
  例:将输出重定向到日志文件
  >>> logfile = open('~/python/log.txt','a')
  >>> print >> logfile, 'fuck you!'
  >>> logfile.close()
  # cat ~/python/log.txt
  Fatal error: invalid input!
  例:获取用户输入raw_input()
  >>> user = raw_input('Enter login name: ')
  Enter login name: root
  >>> print 'Your login name is: ',user
  Your login name is:  root
  例:输入一个数值字符串,并转换成整数
  >>> num = raw_input('Now enter a number: ')
  Now enter a number: 1024
  >>> print 'Doubling your number: %d' % (int(num)*2)
  Doubling your number: 2048
  注:从交互式解释器中获取帮助
  >>> help(raw_input)
  2.3 注释
  >>> # one comment
  ... print 'Hello World!'# another comment
  特别注释
  ------------------
  def foo()
  "This is a doc string."
  return True
  ------------------
  2.4 运算符
  +-*///(对结果四舍五入)
  %(返回除法的余数)**(幂)
  >>> print -2*4+3**2
  1
  <<=>>===!=<>
  >>> 2 < 4
  True
  >>>6.2 <= 6.2.0001
  True
  andornot
  >>>2 < 4 and 2 == 4
  False
  >>> 2 >4 or 2 < 4
  True
  >>> 3 < 4 < 5
  True
  注:合理使用括号增强代码可读性
  2.5 变量和赋值
  Python大小写敏感,为动态类型语言,不需要预先声明变量
  >>> counter = 0
  >>> name = "Bob"
  n = n*10 可以写成 n* = 10
  2.6 数字
  int (有符号整数)
  long (长整数)
  bool (布尔值)
  float (浮点值)
  complex (复数)
  例子:
  int 0101 82 -234 0x80 -2312 -0x92
  long 432423423L -4324234 0xDWADAWFFAWDAWD
  bool True False
  float 3.1415926 -90.2 7.2435e2
  complex 6.23+1.5j -1.23-423432J
  利用isinstance()函数,来判断一个对象是否是一个已知的类型:
  >>>lst = []
  >>>isinstance(lst, list)
  True
  >>>isinstance(lst, (int, str, list))
  True
  2.7 字符串
  加号 + 用于字符串连接,星号 * 用于字符串重复
  >>>pystr = 'Python'
  >>>iscool = 'is cool!'
  >>>pystr[0]
  'P'
  >>>pystr[2:5]
  'tho'
  >>> iscool[:2]
  'is'
  >>> iscool[3:]
  'cool'
  >>> iscool[-1]
  '!'
  >>>pystr + ' ' + iscool
  'Python is cool!'
  >>>pystr * 2
  'PythonPython'
  2.8 列表和元祖
  列表和元祖=普通的数组,可存储不同类型的对象
  列表用[]包裹,元素个数和值可以改变
  元祖用()包裹,可看成是只读列表
  >>> aList = [1,2,3,4]
  >>> aList
  [1, 2, 3, 4]
  >>> aList[0]
  1
  >>> aList[2:]
  [3, 4]
  >>> aList[:3]
  [1, 2, 3]
  >>> aList[1] = 5
  >>> aList
  [1, 5, 3, 4]
  元祖可进行切边运算,得到的结果也是元祖(不可修改)
  >>> aTuple = ('robots',77,93,'try')
  >>> aTuple
  ('robots', 77, 93, 'try')
  >>> aTuple[:3]
  ('robots', 77, 93)
  >>> aTuple[1] = 5
  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  TypeError: 'tuple' object does not support item assignment
  2.9 字典
  字典是Python中映射数据类型,由键-值(key-value)对构成,所有类型的对象都可以用作键值,一般以数字和字符串作为键值
  字典元素用{}包裹
  >>> aDict = {'host':'earth'} # create dict
  >>> aDict['port'] = 80 # add to dict
  >>> aDict
  {'host': 'earth', 'port': 80}
  >>> aDict.keys() # key
  ['host', 'port']
  >>> aDict['host'] # value
  'earth'
  >>> for key in aDict: # 遍历key,value
  ...   print key,aDict[key]
  ...
  host earth
  port 80
  2.10 代码块及缩进对齐
  Python通过缩进对齐表达代码逻辑,而不使用大括号
  2.11 if语句
  if expression:
  if_suite
  如果表达式的值非0或布尔值为True,则代码组if_suite被执行,否则执行下一条语句
  else语句:
  if expression:
  if_suite
  else:
  else_suite
  elif语句:
  if expression1:
  if_suite
  elif expression2:
  elif_suite
  else:
  else_suite
  2.12 while循环
  while expression:
  while_suite
  语句while_suite会被连续不断的循环执行,直到表达式值变为0或False: Python才会执行下一句代码
  >>> counter = 0
  >>> while counter < 3:
  ...   print 'loop #%d' %(counter)
  ...   counter += 1
  ...
  loop #0
  loop #1
  loop #2
  2.13 for循环和range()内建函数
  Python中的for接受可迭代对象作为其参数,每次迭代其中一个元素
  >>> print 'I like to use the Internet for: '
  I like to use the Internet for:
  >>> for item in ['e-mail','net-surfing','homework','chat']:
  ...   print item
  ...
  e-mail
  net-surfing
  homework
  chat
  在print语句后面添加一个逗号(,),就可以让输出在同一行显示
  >>> for item in ['e-mail','net-surfing','homework','chat']:
  ...   print item,
  ...
  e-mail net-surfing homework chat
  带逗号的print语句输出的元素间会自动添加一个空格
  >>> who = 'knights'
  >>> what = 'Ni!'
  >>> print 'We are the',who, 'who say',what,what,what,what
  We are the knights who say Ni! Ni! Ni! Ni!
  >>> print 'We are the %s who say %s' %(who,((what + ' ') * 4))
  We are the knights who say Ni! Ni! Ni! Ni!
  生成一个数字序列,实现递增计数效果
  >>> for eachNum in [0,1,2]:
  ...    print eachNum
  ...
  0
  1
  2
  利用range()内建函数来生成列表,实现递增计数
  >>> for eachNum in range(3):
  ...   print eachNum
  ...
  0
  1
  2
  迭代每一个字符
  >>> foo = 'abc'
  >>> for c in foo:
  ...    print c
  ...
  a
  b
  c
  range()和len()实现用于字符串的索引,显示每一个元素及其索引值
  >>> foo = 'abc'
  >>> for i in range(len(foo)):
  ...   print foo, '(%d)' %i
  ...
  a (0)
  b (1)
  c (2)
  不过,这些循环有一个约束,你要么循环索引,要么循环元素,这导致了enumerate()函数的推出,它能同时做到这两点
  >>> for i,ch in enumerate(foo):
  ...   print ch, '(%d)' %i
  ...
  a (0)
  b (1)
  c (2)
  2.13 列表解析
  表示在一行中使用一个for循环将所有值放到一个列表中
  >>> squared = [x ** 2 for x in range(4)]
  >>> for i in squared:
  ...   print i
  ...
  0
  1
  4
  9
  进阶:
  >>> sqdEvens = [ x ** 2 for x in range(8) if not x %2]
  >>> for i in sqdEvens:
  ...   print i
  ...
  0
  4
  16
  36
  2.15 文件和内建函数open(),file()
  打开文件:
  handle = open(file_name,access_mode = 'r')
  file_name变量为打开文件的字符串名字
  access_mode中'r'表示读取,'w'表示写入,'a'表示添加.'+'表示读写,'b'表示二进制访问,如果未提供 access_mode, 默认值 'r'.
  如果open()成功,一个文件对象句柄会被返回,所有后续文件操作都必须通过此文件句柄进行,当一个文件对象返回之后,我们就可以访问它的一些方法,比如readlines()和close().文件对象的方法属性也必须通过句点属性标示法访问
  注: 什么是属性?
  属性是与数据有关的项目,属性可以是简单的数据值,也可以是可执行对象,比如函数和方法,那些对象拥有属性呢?很多,类,模块,文件还有复数等等对象都拥有属性.
  访问对象属性,使用句点属性标示法,也就是在对象名和属性名之间加一个句点:
  object.attribute
  例:输入文件名,然后打开一个文件,并显示它的内容到屏幕上:
  ----------------------------
  #!/usr/bin/env python
  filename = raw_input("Enter file name: ")
  fobj = open(filename,'r')
  for eachLine in fobj:
  print eachLine,
  fobj.close()
  -----------------------------
  2.16 错误和异常
  添加错误检测及异常处理 只要将它们封装到try-except语句中,try下的代码组就是你打算管理的代码,except之后的代码,就是你处理错误的代码
  #!/usr/bin/env python
  try:
  filename = raw_input('Enter file name: ')
  fobj = open(filename,'r')
  for eachLine in fobj:
  print eachLine, fobj.close()
  except IOError, e:
  print 'file open error:',e
  2.17 函数
  Python中函数使用小括号()调用,调用前必须先定义,函数中木有return语句,就会自动返回None对象
  >>> def addMe2Me(x):
  ...     'apply + operation to argument'
  ...     return (x + x)
  ...
  # 调用函数
  >>> addMe2Me(4.25)
  8.5
  >>> addMe2Me(10)
  20
  >>> addMe2Me('Python')
  'PythonPython'
  >>> addMe2Me([-1,'abc'])
  [-1, 'abc', -1, 'abc']
  默认参数
  表示参数调用时如果木有提供这个参数,就会取这个值作为默认值
  >>> def foo(debug = True):
  ...   'determine if in debug mode with default argument'
  ...   if debug:
  ...     print 'in debug mode'
  ...   print 'done'
  ...
  >>> foo()
  in debug mode
  done
  >>> foo(False)
  done
  注:debug参数有一个默认值True,如果木有传参,debug会自动拿到True值,返回函数内的结果,如果传一个参数False,默认参数就木有使用
  2.18 类
  面向对象编程,扮演相关数据及容器的角色
  定义类

  class>  "optional documentation string"
  ---------------------------------------
  #!/usr/bin/env python
  class FooClass(object):

  '''my very first>  version = 0.1 # 定义静态变量
  def __init__(self,nm='John Doe'): # 自定义一个__init__方法
  '''constructor'''
  self.name = nm

  print 'Createed a>  def showname(self): # 定义一个方法,并对自身引用

  '''display instance attribute and>  print 'Your name is', self.name
  print 'My name is', self.__class__.__name__
  def showver(self):

  '''display>  print self.version
  def addMe2Me(self,x):
  '''apply + operation to argument'''
  return x + x
  # 调用__int__()方法
  fool = FooClass()
  # 调用showname()方法
  fool.showname()
  fool.showver()
  print fool.addMe2Me(5)
  print fool.addMe2Me('xyz')
  --------------------------------------------
  # python test.py
  ------------------
  # 调用__int__()的返回结果

  Createed a>  # 返回showname()方法结果
  Your name is John Doe
  My name is FooClass
  0.1
  10
  xyzxyz
  ------------------
  2.19 模块
  模块将彼此有关系的代码组织到一个独立文件中
  当你创建了一个Python源文件,模块的名字就是不带 .py后缀的文件名,一个模块创建之后,可以从另一个模块中使用import 语句导入这个模块来使用
  例:
  >>> import sys
  # write()不会自动在字符串后面添加换行符号
  >>> sys.stdout.write('Hello World!\n')
  Hello World!
  >>> sys.platform
  'linux2'
  >>> sys.version
  '2.7.3 (default, Sep 26 2012, 21:51:14) \n[GCC 4.7.2]'
  2.20 实用的函数
  函数描述
  dir([obj])显示对象的属性,如果没有提供参数,则显示全局变量的名称
  help([obj])以一种整齐美观的形式 显示对象的文档字符串,如果没有提供参数,则会进入交互式帮助
  int(obj)将一个对象转换为整数
  len(obj)返回对象的长度
  open(fn,mode)以mode('r' = 读, 'w'=写)方式打开一个文件名为fn的文件
  range([[start,]stop[,step])返回一个整数列表,起始值为 start,结束值为stop - 1;start默认值为0,step默认值为1
  raw_input(str)等待用户输入一个字符串,可以提供一个可选的参数str用作提示信息
  str(obj)将一个对象转换为字符串
  type(obj)返回对象的类型(返回值本身是一个type对象!)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-549828-1-1.html 上篇帖子: Python学习笔记8—Python函数 下篇帖子: Linux安装python3.6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表