python 如何用python for循环 i显示第i个字母? 比如本来有一个词Hallo, 希望输入3后输出l,怎么做到?

python列表的问题 比如有这样一个列表 i=[[1,2,3],[4,5,6],[7,89]]要_百度知道python的 for循环如何取值?并与已知的值比较?比如说for i in text (text大小不确定),然后把text中的每个值都取出来,与一个已知的值(“ABC”)比较,如果与与“ABC”相同,则输出 “The result isright!”
凹凸曼nhbO
for i in test:if i=='ABC':print 'The result is right'
请问,“ABC”是字符串,i能与字符串进行比较么?
要遍历的这个 text
都可以用来和字符串做“==”判断。
为您推荐:
扫描下载二维码Python 基础教程
Python While循环语句
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件:
执行语句&&
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
执行流程图如下:
#!/usr/bin/python
while (count & 9):
print 'The count is:', count
count = count + 1
print "Good bye!"
以上代码执行输出结果:
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
# continue 和 break 用法
while i & 10:
if i%2 & 0:
# 非双数时跳过输出
# 输出双数2、4、6、8、10
# 循环条件为1必定成立
# 输出1~10
if i & 10:
# 当i大于10时跳出循环
如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
while var == 1 :
# 该条件永远为true,循环将无限执行下去
num = raw_input("Enter a number
print "You entered: ", num
print "Good bye!"
以上实例输出结果:
Enter a number
You entered:
Enter a number
You entered:
Enter a number
You entered:
Enter a number between :Traceback (most recent call last):
File "test.py", line 5, in &module&
num = raw_input("Enter a number :")
KeyboardInterrupt
注意:以上的无限循环你可以使用
CTRL+C 来中断循环。
循环使用 else 语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
#!/usr/bin/python
while count & 5:
print count, " is
less than 5"
count = count + 1
print count, " is not less than 5"
以上实例输出结果为:
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中,
如下所示:
#!/usr/bin/python
while (flag): print 'Given flag is really true!'
print "Good bye!"
注意:以上的无限循环你可以使用
CTRL+C 来中断循环。developerWorks 社区
在这篇文章中,将学习如何处理文件。首先,回顾一种使用 Python 输出数据的简单方式,然后学习文件对象,Python 程序用它从文件读取数据和把数据写入文件。将演示打开文件的不同模式,最后将显示如何读取和写入二进制文件。
(), NCSA 研究科学家,助理天文学教授, 伊利诺斯 Urbana-Champaign 大学
Robert J. Brunner 是国家超级计算应用中心的研究科学家和伊利诺斯 Urbana-Champaign 大学的助理天文学教授。他出版了多部著作,撰写了关于各种主题的许多文章和教程。可以通过他的邮件地址 rb@ncsa.uiuc.edu 与他联系。
读取、写入和 Python在 “” 系列以前的文章中,学习了基本的 Python 数据类型和一些容器数据类型,例如 tuple、string 和 list。其他文章讨论了 Python 语言的条件和循环特性,以及它们如何与容器数据类型进行协作来简化编程任务。编写程序的最后一个基本步骤就是从文件读取数据和把数据写入文件。阅读完这篇文章之后,可以在自己的 to-do 列表中加上检验这个技能学习效果的任务。简单输出贯穿整个系列,一直用 print 语句写入(输出)数据,它默认把表达式作为 string 写到屏幕上(或控制台窗口上)。清单 1 演示了这一点。清单 1 重复了第一个 Python 程序 “Hello, World!”,但是做了一些小的调整。清单 1. 简单输出&&& print "Hello World!"
Hello World!
&&& print "The total value is = $", 40.0*45.50
The total value is = $ 1820.0
&&& print "The total value = $%6.2f" % (40.0*45.50)
The total value = $1820.00
&&& myfile = file("testit.txt", 'w')
&&& print && myfile, "Hello World!"
&&& print && myfile, "The total value = $%6.2f" % (40.0*45.50)
&&& myfile.close()正如这个示例演示的,用 print 语句写入数据很容易。首先,示例输出一个简单的 string。然后创建并输出复合的 string,这个字符串是用 string 格式化技术创建的。但是,在这之后,事情发生了变化,与代码以前的版本不同。接下来的一行创建 file 对象,传递进名称 "testit.txt" 和 'w' 字符(写入文件)。然后使用修改过的 print 语句 —— 两个大于号后边跟着容纳 file 对象的变量 —— 写入相同的 string。但是这一次,数据不是在屏幕上显示。很自然的问题是:数据去哪儿了?而且,这个 file 对象是什么?第一个问题很容易回答。请查找 testit.txt 文件,并像下面那样显示它的内容。% more testit.txt
Hello World!
The total value = $1820.00可以看到,数据被准确地写入文件,就像以前写到屏幕上一样。现在,请注意清单 1 中的最后一行,它调用 file 对象的
close 方法。在 Python 程序中这很重要,因为在默认情况下,文件输入和输出是缓冲的;在调用 print 语句时,数据实际未被写入;相反,数据是成批写入的。让 Python 把数据写入文件的最简单方式就是显式地调用 close 方法。文件对象file 是与计算机上的文件进行交互的基本机制。可以用 file 对象读取数据、写入数据或把数据添加到文件,以及处理二进制或文本数据。学习 file 对象的最简单方法就是阅读帮助,如清单 2 所示。清单 2. 得到 file 对象的帮助&&& help(file)
Help on class file in module __builtin__:
class file(object)
file(name[, mode[, buffering]]) -& file object
Open a file.
The mode can be 'r', 'w' or 'a' for reading (default),
writing or appending.
The file will be created if it doesn't exist
when opened for
it will be truncated when
opened for writing.
Add a 'b' to the mode for binary files.
Add a '+' to the mode to allow simultaneous reading and writing.
If the buffering argument is given, 0 means unbuffered, 1 means line
buffered, and larger numbers specify the buffer size.
Add a 'U' to mode to open the file for input with universal newline
Any line ending in the input file will be seen as a '\n'
in Python.
Also, a file so opened gains the attribute 'newlines';
the value for this attribute is one of None (no newline read yet),
'\r', '\n', '\r\n' or a tuple containing all the newline types seen.
'U' cannot be combined with 'w' or '+' mode.
open() is an alias for file().
Methods defined here:
...正如帮助工具指出的,使用 file 对象很简单。用 file 构造函数或 open 方法创建 file 对象,open 是 file 构造函数的别名。第二个参数是可选的,它指定文件的使用方式:'r' (默认值)表示从文件读取数据。'w' 表示要向文件写入数据,并截断以前的内容。'a' 表示要向文件写入数据,但是添加到当前内容尾部。'r+' 表示对文件进行读写操作(删除以前的所有数据)。'r+a' 表示对文件进行读写操作(添加到当前内容尾部)。'b' 表示要读写二进制数据。这篇文章的第一个代码清单向文件写入数据。现在,清单 3 显示如何把这个数据读入 Python 程序,并解析文件的内容。清单 3. 从文件读取数据&&& myfile = open("testit.txt")
&&& myfile.read()
'Hello World!\nThe total value = $1820.00\n'
&&& str = myfile.read()
&&& print str
&&& myfile.seek(0)
&&& str = myfile.read()
&&& print str
Hello World!
The total value = $1820.00
&&& str.split()
['Hello', 'World!', 'The', 'total', 'value', '=', '$1820.00']
&&& str.split('\n')
['Hello World!', 'The total value = $1820.00', '']
&&& for line in str.split('\n'):
print line
Hello World!
The total value = $1820.00
&&& myfile.close()要读取数据,首先要创建合适的 file 对象 —— 在这个示例中,文件对象打开 testit.txt 文件,并用 read 方法读取内容。这个方法把整个文件读入一个 string,然后在程序中把这个字符串输出到控制台。在对 read 方法的第二个调用中,试图把值分配给 str 变量,结果返回一个空的 string。这是因为第一个 read 操作读入了整个文件。当试图再次读取内容时,已经到了文件末尾,所以什么也读不到。这个问题的解决方案也很简单:让 file 对象返回文件的开头。回到开头要通过 seek 方法进行,它接受一个参数,表示要从文件中的什么位置开始读取或写入(例如,0 代表文件开头)。seek 方法支持更复杂的操作,但是可能会有危险。对于目前来说,我们还坚持采用简单方式。现在回到了文件的开始之处,可以把文件内容读入 string 变量并对 string 做适当地解析。请注意,在文件中,行之间用新行(或行结束)字符区分。如果试着在 string 上调用 split 方法,它会在空白字符(例如空格)处进行拆分。为了让方法根据新行字符拆分各行,必须显式地指定新行字符。然后可以拆分 string 并在 for 循环中对文件的行进行迭代。看起来仅仅从文件中读取和处理一行内容都有许多工作要做。Python 要让简单的事情变容易,所以您可能想知道这个任务有没有快捷方式可用。如清单 4 所示,答案是 yes。清单 4. 读取和解析行&&& myfile = open("testit.txt")
&&& for line in myfile.readlines():
print line
Hello World!
The total value = $1820.00
&&& myfile.close()
&&& for line in open("testit.txt").readlines():
print line
Hello World!
The total value = $1820.00
&&& for line in open("testit.txt"):
print line
Hello World!
The total value = $1820.00清单 4 演示了读取和解析文本文件行的三种技术。首先,打开文件并把它分配给变量。然后调用 readlines 方法,把整个文件读入内存并把内容拆分成 string 列表。for 循环在 string 列表上进行迭代,一次输出一行。第二个 for 循环通过使用 file 对象的隐式变量(也就是说,变量不是显式创建的),对这个过程稍做了点儿简化。打开文件和读取文件内容一次完成,生成的效果与第一个显式示例相同。最后一个示例进一步做了简化,并演示了直接在 file 对象上进行迭代的能力(请注意,这是 Python 的一个新特性,所以在您的计算机上可能无法工作)。在这个示例中,创建隐式 file 对象,然后 Python 做余下的工作,允许对文件中的全部行进行迭代。但是,有些时候,在从文件读取数据时,可能想要更好的控制级别。在这种情况下,应当使用 readline 方法,如清单 5 所示。清单 5. 读取数据&&& myfile = open("testit.txt")
&&& myfile.readline()
'Hello World!\n'
&&& myfile.readline()
'The total value = $1820.00\n'
&&& myfile.readline()
&&& myfile.seek(0)
&&& myfile.readline()
'Hello World!\n'
&&& myfile.tell()
&&& myfile.readline()
'The total value = $1820.00\n'
&&& myfile.tell()
&&& myfile.readline()
&&& myfile.tell()
&&& myfile.seek(0)
&&& myfile.read(17)
'Hello World!\nThe '
&&& myfile.seek(0)
&&& myfile.readlines(23)
['Hello World!\n', 'The total value = $1820.00\n']
&&& myfile.close()这个示例演示了如何在文件中移动,一次读取一行,或者显式地用 seek 方法移动文件位置指示器。首先,用 readline 方法在文件行中移动。当到达文件末尾时,readline 方法返回一个空的 string。在过了文件末尾之后,如果还用这种方式继续读取,并不会造成错误,只会返回空的 string。然后返回文件开始的地方,并读取另一行。 tell 方法显示出在文件中的当前位置(应当在第一行文本之后) —— 在这个示例中,在第 13 个字符位置。通过使用这个知识,可以向 read 或readline 方法传递一个参数,控制读取的字符数。对于 read 方法,这个参数(在这个示例中是 17)是要从文件中读取的字符数。但是 readline 方法在读入指定数量的字符后,还会继续读取,直到行尾。在这个示例中,它读取第一行和第二行文本。写入数据迄今为止的示例都侧重于读取数据,而不是写入数据。但是如清单 6 所示,一旦了解了使用 file 对象的基础知识,写入也很容易。清单 6. 写入数据&&& mydata = ['Hello World!', 'The total value = $1820.00']
&&& myfile = open('testit.txt', 'w')
&&& for line in mydata:
myfile.write(line + '\n')
&&& myfile.close()
&&& myfile = open("testit.txt")
&&& myfile.read()
'Hello World!\nThe total value = $1820.00\n'
&&& myfile.close()
&&& myfile = open("testit.txt", "r+")
&&& for line in mydata:
myfile.write(line + '\n')
&&& myfile.seek(0)
&&& myfile.read()
'Hello World!\nThe total value = $1820.00\n'
&&& myfile.close()
&&& myfile = open("testit.txt", "r+a")
&&& myfile.read()
'Hello World!\nThe total value = $1820.00\n'
&&& for line in mydata:
myfile.write(line + '\n')
&&& myfile.seek(0)
&&& myfile.read()
'Hello World!\nThe total value = $1820.00\nHello World!\nThe total value = $1820.00\n'
&&& myfile.close()要把数据写入文件,必须先创建 file 对象。但是,在这情况下,必须用 'w' 模式标记指定要写入文件。在这个示例中,把 mydata list 的内容写入文件,关闭文件,然后重新打开文件,这样就可以读取内容了。但是,通常情况下,想要同时读取文件和写入文件,所以这个示例的下一部分用 'r+' 模式重新打开文件。因为能够写入文件,而不是添加,所以文件会被截断。首先,把 mydata list 的内容写入文件,然后把文件指针重新定位到文件开头,并读入内容。然后这个示例关闭文件,并用读取和添加模式 "r+a" 重新打开文件。正如示例代码所示,文件内容现在是两个写入操作的结果(文本是重复的)。处理二进制数据前面所有的示例都处理文本数据或字符数据:写入和读取字符 string。但是,在某些情况下,例如在处理整数或压缩文件时,需要能够读取和写入二进制数据。在创建 file 对象时,通过把 'b' 添加到文件模式中,可以很容易地用 Python 处理二进制数据,如清单 7 所示。清单 7. 处理二进制数据&&& myfile = open("testit.txt", "wb")
&&& for c in range(50, 70):
myfile.write(chr(c))
&&& myfile.close()
&&& myfile = open("testit.txt")
&&& myfile.read()
':;&=&?@ABCDE'
&&& myfile.close()在这个示例中,创建一个合适的 file 对象,然后用从 50 到 69 的 ASCII 值写入二进制字符。使用 chr 方法,把 range 方法调用创建的整数转变成字符。在写完所有数据之后,关闭文件并重新打开文件进行读取,还是使用二进制模式标记。读取文件可以证明没有把整数写入文件,相反,写的是字符值。在读取和写入二进制数据时,必须小心,因为不同的平台用不同的方式保存二进制数据。如果必须处理二进制数据,最好是使用来自 Python 库的合适对象(或者来自第三方开发人员的对象)。读取和写入:最有趣的地方这篇文章讨论了在 Python 程序中如何从文件读取数据和写入数据到文件中。总体来说,过程很简单:创建合适的 file 对象,然后按照需要读取和写入。但是,在使用写入模式创建 file 文件,向文件写入数据时,必须注意文件的截断。如果需要向文件中添加数据,应当在创建 file 对象时,使用添加模式。
参考资料 您可以参阅本文在 developerWorks 全球站点上的 。
请阅读 developerWorks “” 系列的全部文章。
如果已经有了可以工作的 Python 解释器, 是开始学习该语言的好地方。
请访问 developerWorks
获得全面的 how-to 信息、工具和项目更新,帮助您用开放源码技术进行开发,并把它们用于 IBM 的产品。
革新您的下一个开放源码开发项目,可以下载或在 DVD 上得到。
参与 ,加入 developerWorks 社区。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
免费下载、试用软件产品,构建应用并提升技能。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Open sourceArticleID=161768ArticleTitle=探索 Python,第 8 部分: 用 Python 的输入输出功能读取和写入数据publish-date=The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.

我要回帖

更多关于 python for循环嵌套 的文章

 

随机推荐