zoukankan      html  css  js  c++  java
  • 学习python,第五篇

    Python中%r和%s的详解及区别

    %r用rper()方法处理对象
    %s用str()方法处理对象

    有些情况下,两者处理的结果是一样的,比如说处理int型对象。

    例一:

    print "I am %d years old." % 22
    print "I am %s years old." % 22
    print "I am %r years old." % 22

    返回结果:

    I am 22 years old.
    I am 22 years old.
    I am 22 years old.
     

    另外一些情况两者就不同了

    例二:

    text = "I am %d years old." % 22
    print "I said: %s." % text
    print "I said: %r." % text 
     

    返回结果:

    I said: I am 22 years old..
    I said: 'I am 22 years old.'. // %r 给字符串加了单引号
     

    再看一种情况

    例三:

    import datetime
    d = datetime.date.today()
    print "%s" % d
    print "%r" % d
     

    返回结果:

    2014-04-14
    datetime.date(2014, 4, 14)
     

    可见,%r打印时能够重现它所代表的对象(rper() unambiguously recreate the object it represents)


    列表[ ]

    详细介绍连接:http://www.runoob.com/python3/python3-list.html

    name = ["ZhangYang","GuYun","DengHaiJun","LiuWenWu","LuoJie"]
    name.append("LiangWenJuan")   # 追加,放最后面
    name.insert(1,"CheJiaNing")   #在指定的位置插入
    name[2] = "XiaJiang"    #修改
    name1 = ["AnHua","SuoXueYan"]
    #name.remove("ZhangYang") #删除
    #del name[0]    #删除的另一种方式
    #name.pop()   #删掉最后一个   如果括号内输入指定数字,就等同与del name[0]
    #print(name.index("XiaJiang"))    #找出他的位置
    #print(  name[name.index("XiaJiang")]  )
    #print(name.count("DengHaiJun"))   # 统计
    #name.clear()   #清理列表
    #name.reverse()    #反转
    #name.sort()    #排序
    name.extend(name1)   #合并
    #del name1     #删除变量
    print(name)
    #print(name[0],name[2])
    #print(name[1:3])   #切片    包头不包尾  print(name[:3])  一样的作用
    #print(name[-1])   #取最后一个
    #print(name[-3:])    #取最后的值,包括最后一个
    list

    copy()与deepcopy()区别  

     原创地址https://blog.csdn.net/qq_32907349/article/details/52190796

         先上结论:

    —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。 
    —–而浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。

    以下可以帮助理解:

    对于简单的 object,用 shallow copy 和 deep copy 没区别

    复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未从原 object 真的「独立」出来。也就是说,如果你改变原 object 的子 list 中的一个元素,你的 copy 就会跟着一起变。这跟我们直觉上对「复制」的理解不同。

    import copy
    
    person=['name',['saving',100]]
    '''
    p1=copy.copy(person)     #浅copy
    p2=person[:]
    p3=list(person)
    '''
    p1=person[:]
    p2=person[:]
    p3=list(person)
    p4=copy.deepcopy(person)  #深copy
    p1[0]='alex'
    p2[0]='fengjie'
    p3[0]='deng'
    
    p1[1][1]=50
    
    print(p1)
    print(p2)
    print(p3)
    print(p4)
    copoy

    isdigit() 方法  检测字符串是否由数字组成

    返回值是 True  False

    实例:

    str = "1234567"
    print(str.isdigit())
    
    结果是:True
    
    str = "asddfggg321"
    print(str.isdigit())
    
    
    结果是:False
    View Code

    enumerate()函数

    原文地址:https://blog.csdn.net/churximi/article/details/51648388

    • enumerate()是python的内置函数
    • enumerate在字典上是枚举、列举的意思
    • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
    • enumerate多用于在for循环中得到计数

    举例:

    • 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
    • list1 = ["", "", "一个", "测试"]
      for i in range (len(list1)):
          print i ,list1[i]
    • 上述方法有些累赘,利用enumerate()会更加直接和优美:
    • list1 = ["", "", "一个", "测试"]
      for index, item in enumerate(list1):
          print index, item
      >>>
      0 这
      12 一个
      3 测试
    • enumerate还可以接收第二个参数,用于指定索引起始值,如:
    • list1 = ["", "", "一个", "测试"]
      for index, item in enumerate(list1, 1):
          print index, item
      >>>
      123 一个
      4 测试
    • 如果要统计文件的行数,可以这样写:

      count = len(open(filepath, 'r').readlines())
    • 这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

      可以利用enumerate():

      count = 0
      for index, line in enumerate(open(filepath,'r')): 
          count += 1

    len() 方法 返回对象(字符、列表、元组等)长度或项目个数

    产品  product

    薪水  salary

    数字  digit

    项目  item

    枚举  enumerate

    选择  choice

    索引  index

    补充  added

    聪明不是学习编程成功的关键,坚持和勤于思考才是。
  • 相关阅读:
    Entity SQL 初入
    ObjectQuery查询及方法
    Entity Framework 的事务 DbTransaction
    Construct Binary Tree from Preorder and Inorder Traversal
    Reverse Linked List
    Best Time to Buy and Sell Stock
    Remove Duplicates from Sorted Array II
    Reverse Integer
    Implement Stack using Queues
    C++中const限定符的应用
  • 原文地址:https://www.cnblogs.com/itxpl/p/8760054.html
Copyright © 2011-2022 走看看