think python学习笔记(8)

搜索

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

find接收的是字符,并找到该字符所在的索引,如果没有找到该字符,函数返回-1
再循环内部使用return,如果找到字符,函数停止循环马上返回
这种计算模式,遍历一个蓄力并在找到寻找的东西时返回,被称作搜索

循环和计数
计算字母a在字符串中出现的次数

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

变量count初始化为0,然后每次出现a时递增。当循环结束时,count包含了字母a出现的总次数

字符串方法
字符串提供了可执行多种有用操作的方法。方法和函数类似,接受实参并返回一个值,但是语法不通

word = 'banana'
new_word = word.upper()

点标记法指出方法的名字,空括号表示不接受实参
这被称作方法调用
也存在find字符串方法

word = 'banana'
index = word.find('a')

find方法还可以查找子字符串,而不仅仅是字符

word.find('na')

find默认从字符串的首字母开始查找,它还可以接受第二个实参,即从何处开始的索引

word.find('na',3)

find也可以接受结束查找的索引作为第三个实参

name = 'bob'
name.find('b',1,2)

搜索时不包括结束查找的索引,类似切片

in运算符
in是一个布尔运算符,接受两个字符串,如果第一个作为子串出现在第二个中,则返回True

'a'in'banana'

字符串比较
关系运算符也适用于字符串,可以这样检查两个字符串是否相等

if word == 'banana'
	print('same')

其它关系运算符对于按字母顺序放置单词也很有用

if word < 'banana':
	print('before')
elif word > 'banana':
	print('after')
else:
	print('same')	

在python中所有大写字母出现在所有小写字母之前
所以执行比较前,最好将字符串转化为标准形式

文字游戏
通过查找具有特定属性的单词来解答字谜游戏

读取单词列表
使用Mody集合
使用python打开文本文件
内建函数opne接受文件名作为形参,并返回一个文件对象,可以用它读取该文件

fin = open('words.txt')

文件对象提供了几个读取方法,包括readline,从文件中读取字符直到碰到新行,并将其作为字符串返回
序列\r\n代表两个空白字符回车和换行,它们将这个单词和下一个分开
此文件对象跟踪它在文件中的文职,所以如果再次调用readline,将会获得下一个单词
如果不想要空白字符,可以用字符串方法strip删掉它

line = fin.readline()
word = line.strip()

也可以将文件对象用做for循环的一部分,读取txt并打印每个单词,每行一个

fin = open(words.txt)
for line in fin:
	word = line.strip()
	print(word)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值