字符串

字符串是一个序列,可以用方括号操作符来访问字符串中的单独字符

fruit = 'banana'
letter = fruit[1]

方括号中的表达式称为下标 下标从0 开始

任何表达式,包括变量和操作符 都可以做为下标

len

len是一个内置函数,可以返回字符串的个数

friut = 'banana'
print len(friut)

使用for循环进行遍历

    index = 0
while index<len(fruit):
letter = fruit[index]
print index
index = index+1

字符串切片

字符串中的一段称为一个切片

s = "hello world"
print s[0:5]
hello

操作符[n:m] 返回从字符串n个字符起到第M个字符部分,包含n但是不包含m

字符串是不可变的

修改字符串 会报错,本身不可修改。你可以新建一个字符

fruit = 'hello'
furit[0]='j' # 报错
letter = fruit[0] #√

搜索

通过便利操作,可以在一个指定的字符窜中找到我们想找的字符

def find(word,letter):
index=0
while index<len(word):
if word[index]==letter:
return index
index= index+1
return -1

循环和计数

通过循环,我们可以用变量每次累加的方式 统计次数

def count():
word = 'banana'
count =0
for letter in word:
if letter == 'a':
count = count+1
print count

字符串方法

word = 'banana'
print word.upper() #大写 print word.find('a') #查找 print word.find("a",3) #从下标3开始查找 print word.find("a",3,5) #从下标3开始查找 5结束

操作符in

in 是一个布尔操作符,操作于2个字符串上

 'a' in 'banana'
True #例如 def in_both(word1,word2):
for letter in word1:
if letter in word2:
print letter

字符串比较

if word == 'banana'
print True

字符串 比较> 或者< 时,会按照字母顺序比较,大写字母比小写字母要大。

练习

  1. 编写一个函数接受字符串为形参,倒序显示他的字母 每个字母单独一行
        def desort(c):
    index = len(c)-1
    while index>=0:
    print c[index]
    index = index-1
  2. 给定fruit是一个字符串,fruit[:]表示什么
    fruit = 'hello'
print fruit[:] #字符本身
  1. 改良find函数,让它接受第3个形参,表示word从哪个下标开始搜索

#修改版
def find(word,letter,start):
index =start
while index<len(word):
if word[index]==letter:
return index
index = index +1
return -1
  1. 改良count函数 ,泛化它以接收字符串和要计数的字母作为参赛
def count(word,find):
count = 0
for letter in word:
if letter==find:
count = count+1
return count
  1. ROT13是个比较弱的加密方式,对单词进行位移来实现加密。编写一个rotate_word 接受字符串为参数,返回一个新的字符串 并加密。
def rotate_word(s,n):
rotate_s = ''
for i in s:
rotate_s = rotate_s+ chr(ord(i)+2)
return rotate_s

术语表():

  • 对象(object):变量可以引用的一种事物,就现在拉说,你可以八对象当做值来使用
  • 序列(sequence):一个有序的集合
  • 项(item):序列中的一个值
  • 下标(index):用于在序列中选择元素的整数值。
  • 切片(slice):字符串的一部分 通过一个下标范围来定位
  • 空字符串(empty string):没有字符 长度为0的字符串
  • 不可变(immutable):序列的一种属性,表示它的元素是不可变的
  • 遍历(traverse):迭代访问序列中的每一个元素,并对每个元素进行相似操作
  • 搜索(search):一种遍历模式,当找到它想要的元素时停止
  • 计数器(counter):一种用来计数的变量,通常初始化为0 后来会递增
  • 方法(method):和对象关联的一个函数,使用句点表示法来调用
  • 方法调用(invocation):调用一个方法的语句

《think in python》学习-8的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  5. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  6. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. [Python] 学习资料汇总

    Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...

  9. Python学习之路【目录】

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...

  10. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

随机推荐

  1. kettle工具二次开发-代码启动JOB

    kettle工具是一款优秀的数据同步.数据处理的BI工具,收到了很多人的青睐.kettle软件通过可视化的图标可以让我们很轻易的能完成数据同步.处理的开发工作.但是使用kettle可视化界面在跑JOB ...

  2. Web页面布局方式小结

    Web页面是由块元素组成的,正常情况下块元素一个个按垂直方向排布,构成了页面.可是这样的主要的布局方式绝大多时候不能满足我们的需求,所以各种布局方式应运而生,本文就对这些布局方式做个小结. 1.元素漂 ...

  3. CentOS6.5下解压文件.tar.gz .war .zip

    解压.tar.gz文件: tar -zxvf web.tar.gz tar不支付解压文件到指定的文件夹! 解压.war .zip文件到指定文件夹: unzip web.war -d webapps/R ...

  4. 解决ie6 闪动的问题

    /*解决ie6 闪动的问题*/ html,html body{_background-image:url(about:blank);_background-attachment:fixed}

  5. tomcat https jks 沃通免费证书安装 解决方案

    网上百度了一天什么没百度到,最后谷歌到了一篇文章启发之下解决之. 代理谷歌网站推荐一个,可以直接上谷歌: https://www.yundou.info ----------------------- ...

  6. 纯Html+Ajax和JSP两者对比的个人理解

    最近写个人web,用jsp+servlet做,突然想到一个问题:html+ajax似乎和jsp实现效果一样:那么,两者到底有什么区别呢? 这里参考老猿的一段话: 全站ajax会维护大量的js代码,如何 ...

  7. 日志管理-NLog日志框架简写用法

    本文转载:http://www.blogjava.net/qiyadeng/archive/2013/02/27/395799.html 在.net中也有非常多的日志工具,今天介绍下NLog.NLog ...

  8. 第一局 ThreeJS-开始

    本文介绍ThreeJS使用的大体流程.(由于水平有限,请大家多多指教.) 1.ThreeJS下载和引入: (1)下载地址:https://github.com/mrdoob/three.js/arch ...

  9. Composer的使用

    安装 curl -sS https://getcomposer.org/installer | php 你可以使用--install-dir选项将Composer安装到指定的目录,例如: curl - ...

  10. C++ 包含头文件 和 宏的使用 和 条件编译

    1 #define命令剖析 1.1   #define的概念     #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本. ...