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

[经验分享] python三天简单学习Day2-13452085

[复制链接]

尚未签到

发表于 2018-8-10 08:06:32 | 显示全部楼层 |阅读模式
  python三天简单学习Day2
  循环语句:
  while循环:
  while循环语法结构:
  当需要语句不断重复执行时,可以使用while循环
  #################################
  #!/usr/bin/env python
  #coding: utf-8
  i=1
  while i<=5:
  print i
  i+=1
  #################################
  break语句:
  结束当前循环然后跳转到下条语句
  写程序的时候应尽量避免重复的代码,在这种情况下可以使用while-break结构
  #################################
  #!/usr/bin/env python
  #coding: utf-8
  name=raw_input('username:')
  while name!='tom':
  name=raw_input('username:')
  #可以替换为
  while True:
  name=raw_input('uaername:')
  if name='tom':
  break
  #################################
  continue语句:
  当遇到continue语句时,程序会终止当前循环,并忽略剩余语句,然后回到循环顶端
  如果仍然满足循环条件,循环语句继续执行,否则退出循环
  #################################
  #!/usr/bin/env python
  #coding: utf-8
  #计算2+4+6+……+100
  sum100=0
  while counter<=100:
  counter=0
  counter+=1
  if counter % 2:
  continue
  sum100+=counter
  print &quot;总和是%d&quot; %sum100
  #################################
  else语句:
  else子句只在循环完成后执行,break语句也会跳过else块
  #################################
  #!/usr/bin/env python
  #coding: utf-8
  sum10=0
  i=1
  while i<=10:
  sum10+=i
  i+=1
  else:
  print sum10
  #################################
  for循环:
  for循环语法结构:
  python中的for接受可迭代对象(例如序列或迭代器)作为参数,每次迭代其中的一个元素
  与while循环一样,支持break、continue、else语句
  一般情况下,循环次数未知采用while循环,循环次数可知采用for循环
  #################################
  x='hello xiyuan'
  for i in x:
  print i//以每一个字母作为变量输出
  #################################
  range函数:
  自动生成数列
  for循环常与range函数一起使用,range函数提供循环条件
  range函数的完整语法为:
  range(start,end,step=1)
  #################################
  print range(5)--->[0,1,2,3,4]
  print range(1,5)--->[1,2,3,4]
  print range(1,5,2) --->[1,3]
  print range(1,5,3) --->[1,4]
  #################################
  xrange函数:
  xrange()类似range(),不过当你有一个很大的范围列表时,xrange()可能更为合适,因为它不会在内存里创建列表的完整拷贝
  xrange只能被用在for循环中,在for循环外使用它没有任何意义
  xrange性能远高出range,因为它不会生成整个列表
  #################################
  print xrange(5)--->xrange(5)
  for i in xrange(5):
  print i--->输出结果为0-4五个元素
  #################################
  斐波那契数列
  num=int (raw_input('请输入要计算的月份:'))
  tuzi=[0,1]
  for i in xrange(num):
  tuzi.append(tuzi[-1]+tuzi[-2])
  print '第%d个月共有%d只兔子'%(num,tuzi[-1])
  print tuzi
  #################################
  列表解析:
  用来动态的创建列表,可用于python多进程解析
  语法:[ expr for iter_var in iterable ]
  这个语句的核心是for循环,它迭代iterable对象的所有条目
  expr应用于序列的每个成员,最后的结果值是该表达式产生的列表
  #################################
  print [5 for i in range(5)]--->[5, 5, 5, 5, 5]
  print [i for i in range(5)]--->[0, 1, 2, 3, 4]
  #################################
  习题扩展:
  #################################
  #'''随机密码'''
  import string
  import random
  char=string.letters+string.digits+string.punctuation
  num=int (raw_input('请输入密码长度:'))
  passwd=''
  for i in range(num):
  passwd+=random.choice(char)
  print passwd
  #################################
  文件对象:
  文件打开方式:
  open及file内建函数:
  作为打开文件之门的&quot;钥匙&quot;,内建函数open()以及file()提供了初始化输入/输出(I/O)操作的通用接口,成功打开文件后会返回一个文件对象,否则引发一个错误
  open()方法和file()方法可以完全相互替换
  基本语法:
  file_object=open(dile_name,access_mode='r',buffering=-1)
  文件对象访问模式:
  文件模式操作
  r以读方式打开(文件不存在则报错)
  w以写方式打开(文件存在则清空,不存在则创建)
  a以追加模式打开(必要时创建新文件)
  r+以读写模式打开(文件不存在则报错)
  w+以读写模式打开(文件存在则清空,不存在则创建)
  a+以读写模式打开(追加模式,必要时创建新文件)
  文件输入:
  read方法:
  read()方法用来直接读取字节到字符串中,作多读取给定数目的字节
  如果没有给定size参数(默认值-1)或者size值为负,文件将被读取直至末尾
  语法格式:
  data=fobj.read()
  print data
  readline方法:
  读取文件的一行(读取下个行结束符之前的所有字节)
  然后整行,包括行结束符,作为字符串返回
  如果没有给定size参数(默认值-1)或者size值为负,文件将被读取直至行结束符
  语法格式:
  data=fobj.readlines()
  print data
  readlines方法:
  读取所有(剩余的)行然后把他们作为一个字符串列表返回
  语法格式:
  data=fobj.readlines()
  print data
  文件迭代:
  如果需要逐行处理文件,可以结合for循环迭代文件
  迭代文件的方法与处理其他序列类型的数据类似
  语法格式:
  fobj=open('star.py')
  for eachline in fobj:
  print eachline
  知识点练习:
  #################################
  data=open('/etc/hosts')
  print data.readline()
  print data.read()
  data.seek(0)
  print data.read()
  data.close()
  #################################
  文件输出:
  write方法:
  write()内建方法功能与read()和readline()相反。它把含有文本数据或二进制数据块的字符串写入到文件中去
  写入文件时不会自动添加行结束标志,需要手工输入
  语法格式:
  fobj.write('Hello World!\n')
  writelines方法:
  与readlines()一样,writelines方法是针对列表的操作
  它接受一个和字符串列表作为参数,将它们写入文件
  知识点练习:
  #################################
  data=open('/root/new.txt','w')
  data.writelines(&quot;abcdefg\n&quot;)
  data.writelines(&quot;testtttt\n&quot;)
  data.flush()
  data.writelines(&quot;cccccccc\n&quot;)
  data.close()
  ####测试文件内容
  fi=open('/root/new.txt')
  print fi.read()
  #################################
  习题扩展:
  #################################
  #'''写一个cp(复制)文本程序'''
  f1=raw_input('请输入要复制的文件:')
  f2=raw_input('请输入新的文件:')
  data=open(f1)
  new=open(f2,'w')
  for i in data:
  new.writelines(i)
  data.close()
  new.close()
  ####查看新文件内容
  tmp=open(f2)
  print tmp.read()
  tmp.close()
  #################################
  函数:
  函数基本操作:
  函数基本概念:
  函数是对程序逻辑进行结构化或过程花的一种编程方法,将整块代码巧妙的隔离成易于管理的小块,通常函数都是用于实现某一功能
  将重复的代码放到函数中而不是进行大量的拷贝,这样既能节省空间,也有助于保持一致性
  创建函数:
  函数使用def语句来创建,语法如下:
  def function_name(arguments):
  &quot;function_documentation_string&quot;
  function_body_suite
  标题行由def关键字,函数的名字,以及参数的集合(如果有的话)组成
  def子句的剩余部分包括了一个虽然可选但是强烈推荐的文档字串,和必需的函数体
  调用函数:
  通过以对圆括号调用函数,如果没有加圆括号,则只是对函数的引用
  def foo():
  print 'hello'
  foo()--->hello
  foo---><function foo at 0x7ff2328967d0>
  函数的返回值:
  多数情况下,函数并不直接输出数据,而是向调用者返回值
  函数的返回值使用return关键字,没有return的话,函数默认返回None
  def foo():
  res=3+4
  i=foo()
  print i--->None
  函数参数:
  定义参数:
  形式参数:
  函数定义时,紧跟在函数名后(圆括号内)的参数被称为形式参数,简称形参。由于它不是实际存在变量,所以又称为虚拟变量
  实际参数:
  在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为&quot;是及参数&quot;,简称实参
  传递参数:
  调用函数时,实参的个数需要与形参个数一致,实参将依次传递给形参
  def foo(x,y):
  print 'x=%d,y=%d' %(x,y)
  foo(3,4)--->x=3,y=4
  位置参数:
  与shell脚本类似,程序名以及参数都以位置参数的方式传递给python程序
  使用sys模块的argv列表接收
  #!/usr/bin/env python
  import sys
  print sys.argv
  print sys.argv[2]
  print sys.argv[1],sys.argv[2]
  ./args.py hello world--->
  ['./while.py','hello','world']
  world
  hello world
  默认参数:
  默认参数就是声明了默认值的参数,因为给参数赋予了默认值,所以在函数调用时,不向该参数传入值也是允许的
  def pstar(num=10):
  print '*'*num
  pstar()--->**********
  pstar(20)--->********************
  习题扩展:
  #################################
  #'''计算器-函数(参数)'''
  def jsq(x,y):
  print 'x+y=',x+y
  print 'x-y=',x-y
  print 'x*y=',x*y
  print 'x/y=',x/y
  jsq(3,4)
  #################################
  模块:
  定义模块:
  模块基本概念:
  模块是从逻辑上组织python代码的形式
  当代码量变得相当大的时候,最好把代码分成一些有组织的代码段,前提是保证他们的彼此交互
  这些代码片段相互间有一定的联系可能是一个包含数据成员和方法的类,也可能是一组相关单笔批独立的操作函数
  创建模块:
  模块物理层面上组织模块的方法是文件,每一个以.py作为结尾的python文件都是一个模块,模块名称切忌不要与系统中已存在的模块重名,模块文件名字去掉后面的扩展名(.py)即为模块名
  使用模块:(目录/usr/lib64/python2.7/下有207个模块可以直接使用)
  导入模块(import):
  使用import导入模块,模块被导入后,程序会自动生成pyc的字节码文件以提升性能
  模块属性通过&quot;模块名.属性&quot;的方法调用,如果只需要模块中的某些属性,也可以单独导入
  import sys
  import os,string
  string.digits--->0123456789
  from random import randint
  randint(1,10)--->5
  模块加载(load):
  一个模块只能被加载一次,无论它被导入多少次,只加载一次可以阻止多重导入时代码被多次执行,如果两个文件相互导入,防止了无限的相互加载,模块加载时,顶层代码会自动执行,所以将函数放入模块的顶层是良好的编程习惯
  模块导入的特性:
  模块具有一个_name_特殊属性,当模块文件直接执行时,_name_的值为'_main_'
  当模块被另一个文件导入时,_name_的值就是该模块的名字
  # vim foo.py
  print __name__
  ./foo.py--->__main__
  # python
  >>>import foo--->foo

运维网声明 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-549397-1-1.html 上篇帖子: python中出现IndentationError:unindent does not match 下篇帖子: Python实现算法冒泡排序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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