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 = ""
print(str.isdigit()) 结果是:True str = "asddfggg321"
print(str.isdigit()) 结果是:False

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 这
    1 是
    2 一个
    3 测试
  • enumerate还可以接收第二个参数,用于指定索引起始值,如:
  • list1 = ["这", "是", "一个", "测试"]
    for index, item in enumerate(list1, 1):
    print index, item
    >>>
    1 这
    2 是
    3 一个
    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

学习python,第五篇的更多相关文章

  1. RabbitMQ学习总结 第五篇:路由Routing

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  2. Python学习第十五篇——类继承和类实例化

    学习Python类时,我们明白了类的本质,以及所谓的面向对象编程思想强调的对事物本身的属性,我们对某一类事物进行描述——采用了很多方法,这些方法描述了类的属性(比如猫科动物的眼睛,四肢,是否哺乳类等等 ...

  3. Egret入门学习日记 --- 第五篇(书中 3.5节 内容)

    第五篇(书中 3.5节 内容) 今天得把昨天的问题解决了才行. 去了Q群,碰到一位大大,他给我解惑了.Thanks♪(・ω・)ノ 这是我之前按照书上写的方式写的,并没有效果. 然后大大给我解答了: 后 ...

  4. 【Python】Java程序员学习Python(五)— 函数的定义和使用

    不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...

  5. Python学习【第五篇】:面向对象及相关

    面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 1 2 3 4 5 6 c ...

  6. Python 学习 第十五篇:模块搜索路径和包导入

    在导入自定义的模块时,除了指定模块名之外,也需要指定目录,由于Python把目录称作包,因此,这类导入被称为包导入.包导入把计算机上的目录变成Python的命名空间,而目录中所包含的子目录和模块文件则 ...

  7. Python学习【第五篇】循环语句

    Python循环语句 接下来将介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次. Python ...

  8. python学习【第五篇】python函数 (二)

    一.装饰器 装饰器:本质就是函数,功能是为其它函数添加附加功能 装饰器的原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方式 装饰器的知识储备: 装饰器 = 高阶函数 + 函数嵌套 + 闭包 ...

  9. Django学习笔记第五篇--实战练习一--查询数据库并操作cookie

    一.启动项目: django-admin start mysite1 cd mysite1 python manage.py startapp loginapp 根据上文敲命令就可以创建好了一个项目结 ...

随机推荐

  1. 20165318 2017-2018-2 《Java程序设计》第五周学习总结

    20165318 2017-2018-2 <Java程序设计>第五周学习总结 学习总结 在使用IDEA时,由于我之前编写的代码都是使用GBK编码,使用IDEA打开时,由于IDEA默认为UT ...

  2. 4521: [Cqoi2016]手机号码

    4521: [Cqoi2016]手机号码 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1030 Solved: 609 [Submit][Statu ...

  3. RLE Iterator LT900

    Write an iterator that iterates through a run-length encoded sequence. The iterator is initialized b ...

  4. POJ 2250 (LCS,经典输出LCS序列 dfs)

    题目链接: http://poj.org/problem?id=2250 Compromise Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  5. 拥抱.NET Core系列:MemoryCache 缓存过期 (转载)

    阅读目录 MSCache项目 MSCache提供的过期方式 绝对时间到期 滑动时间到期 自定义过期策略 过期策略组合拳 缓存过期回调 写在最后 在上一篇”拥抱.NET Core系列:MemoryCac ...

  6. CCF 201709-1打酱油

    问题描述 小明带着N元钱去买酱油.酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶.请问小明最多可以得到多少瓶酱油. 输入格式 输入的第一行包含一个整数N,表示小明可用于买酱油的钱数 ...

  7. PyCharm编辑HTML文件时输入{%不能自动补全

    在PyCharm编辑HTML文件时输入Django模板语言时,发现录入 {% 不能自动补全. 找了一下,发现 setting 里可以设置 Python Template Languages,选择自己使 ...

  8. Win10/Ubuntu双系统安装常见问题

    目录 1.win10重启无法进入BIOS 2.install ubuntu后黑屏 2.1 解决安装黑屏 2.2 安装英伟达显卡驱动 3.ubuntu中文系统注意 4.Windows系统时间异常 4.1 ...

  9. WPF中的动画——(一)基本概念

    WPF的一个特点就是支持动画,我们可以非常容易的实现漂亮大方的界面.首先,我们来复习一下动画的基本概念.计算机中的动画一般是定格动画,也称之为逐帧动画,它通过每帧不同的图像连续播放,从而欺骗眼和脑产生 ...

  10. const限定符用法汇总

    const限定符限定变量的类型是一个常量,对象一旦创建后其值就无法改变,所以const对象必须初始化. 初始化 const int i = get_size(); //运行时初始化 const int ...