20161213py学习笔记:string元素不可修改/几种迭代

1、字符串中的元素是不可修改的

strings=‘andasfefanagrgihaigahairt‘
for index,string in enumerate(strings):
  #print index,string
  if string==‘a‘:
  strings[index]=‘w‘
print strings

这段代码运行时,会出现:

  strings[index]=‘w‘

  TypeError: ‘str‘ object does not support item assignment

的报错提示,原因在于strings[index]=‘w‘这步是错的,字符串内的元素是不可修改的。

那如何把strings中所有的‘a’替换成‘w’呢?

strings=‘andasfefanagrgihaigahairt‘
lst=[] #split分不开,认为是1个函数;所以用for遍历,把strings转化成单个字母组成的list
for i in strings:
  lst.append(i)
  for index,string in enumerate(lst):#现在问题就变成了如何修改list的元素,直接让i=‘w’是错的,没这种方法,要用list[i]=*
    if string==‘a‘:
      lst[index]=‘w‘
strings=‘‘.join(lst)#把list转化为string,并赋值为strings
print strings

note:我从始至终其实并没有改变代码开头的strings,我只不过是再造了一个一模一样的strings。他们的id是不同的。

2、print中‘+’的作用

在print ......,我一直觉得‘+’等价于‘,’,其实并非这样。

  ‘+’,让...,....前后两部分无空格衔接

  ‘,’,使得...,...前后两部分衔接的地方会多出1个空格

3、序列解包

a 输入:>>>1,2,3

实际等于输入:(1,2,3)

所以:

  x,y=y,x

  即:

    (x,y)=(y,x)

b for key,value in dict.items():

  这个式子中的key,value就是序列解包的应用。

4、is、=、==

is是用来检测2个名称是不是同一个id

=,是用来赋值的,可以检测2个名字所代表的名称是否相等

==,是来表示运算中相等的

5、assert断言

assert作为调试程序的一种方法,assert......,string.

后面这个string是可以自己加的,这样就可以在报错时便于发现哪里出问题了。

6、迭代

就是循环的另一种说法而已,无论是looper还是iter,都是循环往复,重复重复再重复的意思。

7、几种迭代的方法

xrange是可迭代的,也就是用到几个生成几个,运行速度比range快。

8、while、for

多用for,少用while。break用的比较多。

9、list comprehension,列表推导式。

一般是[........],也可以(......)

10、垃圾回收器

在python中,是无法删除值的。我们删除的是赋予值的名称,然后python的内部程序会把这些无法再使用的值自动删除。

11、exec和eval

exec是执行语句的函数,eval是求值的函数

时间: 2024-10-06 05:19:59

20161213py学习笔记:string元素不可修改/几种迭代的相关文章

EasyARM i.mx28学习笔记——根文件系统rootfs修改和烧写

0 前言 本文详细说明如何修改和制作根文件系统,包括修改根文件系统中的配置文件:在根文件系统中加入可执行文件,最后通过uboot tftp方式烧录根文件系统和镜像. [相关博文] [EasyARM i.mx28学习笔记--文件IO方式操作GPIO] [EasyARM i.mx28学习笔记--安装和使用tftp] [EasyARM i.mx28学习笔记--minicom配置和使用] [EasyARM i.mx28学习笔记--通过modbus tcp控制GPIO] 1 准备 若使用uboot tft

Html5学习笔记1 元素 标签 属性

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>HTML5学习笔记</title> </head> <body bgcolor="#90ee90"> 1.Html5的元素<br/><br/> 元素指的是从開始标签到结束标签的全部代码<

Dynamic CRM 2015学习笔记(4)修改开发人员资源(发现服务、组织服务和组织数据服务)url地址及组织名

在azure vm上安装了CRM 2015后 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015, 发现了一个问题,那就是在设置 ->自定义项 –> 开发人员资源 里面的几个ulr(发现服务.组织服务和组织数据服务)都不对,显示的都是http://机器名/XRMServices/2011/ -, 但这个url是访问不了的,正确的url应该是 http://xxx.cloudapp.net/XRMServices/2011/ - 下面介绍如何修改成正确的url.

Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较

我们经常要在客户端进行数据查询,下面分别比较常用的几种查询方式:XMLHttpRequest, SDK.JQuery, SDK.Rest. XMLHttpRequest是最基本的调用方式,JQuery和Rest的二种方式其实也是用的XMLHttpRequest,只不过是把它封装了一下 JQuery和Rest二种方式的接口一样,所以调用方式也一样 1. XMLHttpRequest 定义 1: function ODataRetrieve(oDataString) { 2: var ServerU

【安全牛学习笔记】选择和修改EXP

选择和修改EXP 网公开的EXP代码 选择可信赖的EXP源 Exploit-db SecruityFocus Searchsploit 有能力修改EXP(Python.Perl.Ruby.C.C++...) www.securityfocus.com 选择和修改EXP 646.c 类unix坏境下编译 返回地址与我们的环境不符 反弹shell硬编码了回链IP地址 缓冲区偏移量与我们的环境不符 目标IP硬编码 [email protected]:~# searchsploit slmail ---

HTML学习笔记——常用元素及其属性(二)

一.HTML表单 -- form标签 -- 与浏览者交互 1.form 标签 -- 代表HTML表单 form标签是成对出现的,以<form>开始,以</form>结束 属性. common -- 公共属性 action -- 浏览者输入的数据被传送到的地方,比如一个PHP页面(dreamdu.php) action语法: url(网址)/页面?表达式1&表达式2&表达式3&... 表达式语法: 参数名称=参数值 示例: http://www.dreamdu

CSS权威指南学习笔记 —— HTML元素分类

HTML文档由各种元素组成.比如,p.table.span等等.每个元素都会对文档的表现有所影响.CSS中,每个元素都会生成一个框(传说中的盒子),其中包含元素内容. 元素可以根据它的创建方式分为两种:替换元素和非替换元素.创建方式会对盒模型的表现有所影响,后续的笔记中会看到. 替换元素:这种元素的内容部分并非由文档直接显示,而是用其他内容来替换.最常见的替换元素img,它是由文档本身之外的一个图片文件来替换的.input也是替换元素,是根据类型的值来决定内容是什么,有时内容被替换成单选钮,有时

HTML学习笔记块元素 第三节 (原创)

块元素会以新行开始如<p><h1><ul> 内联元素不会以新行开始<b><a><img> div元素(未指定元素类型)(用外联 在CSS文件里索引#divid{}就可以设置div属性 可以在大括号前加需要修改的标签)<div id="divid"> span元素(指定了元素类型为文本类型) div布局 <!DOCTYPE html><html lang="en"&g

java学习笔记——String类

一.概述 ·字符串是一个特殊的对象 ·字符串一旦初始化就不可以被改变 ·String str = "abc"; ·String str1 = new String("abc"); 有什么区别? package com.java.study.StringDemo; public class StringDemo { public static void main(String[] args) { String s1 = "abc"; //s1是一个