Python For循环示例
时间:2020-01-09 10:43:06 来源:igfitidea点击:
如何以及何时在Python编程语言下使用for循环?
for循环是一个Python语句,该语句将一组语句重复指定的次数。
您可以在Python的for循环中使用任何对象(例如字符串,数组,列表,元组,dict等)。
Python for循环语法
基本语法为:
for var in list: statement-1 statement-2 statement-N
其中:
- var:var从第一个元素开始,从列表中读取每个元素。
list
:list是一个Python列表,即列表或者字符串。
Python中的示例和用法
以下示例说明了python中for语句的用法。
创建一个名为for-loop.py的文件:
#!/usr/bin/python # # for-loop.py: Sample for loop to print welcome message 3 times # for i in '123': print "Welcome",i,"times"
保存并关闭文件。
如下运行:
$ chmod +x for-loop.py $ ./for-loop.py
或者
$ python for-loop.py
输出示例:
Welcome 1 times Welcome 2 times Welcome 3 times
上面的示例可以使用while循环编写,如下所示:
#/usr/bin/python i=1 while i <= 3: print "Hello World,",i," times." i += 1
输出示例:
Hello World, 1 times. Hello World, 2 times. Hello World, 3 times.
嵌套循环示例
以下代码显示了使用python进行嵌套的经典for循环:
#!/usr/bin/python # Nested for loop example ### Outer for loop ### for x in xrange(1,5 ): ### Inner for loop ### for y in xrange(1, 5): print '%d ' % (x), print
输出示例:
嵌套的Python用于循环程序输出
使用range()函数迭代python for循环
代替使用名为123的字符串,请尝试使用range()遍历数字序列:
#!/usr/bin/python # Python for loop using range() print "*** Generates a list of 3 values starting from 0 ***" for i in range(3): print "Welcome",i,"times." print "*** Generates a list of 3 values starting from 1 ***" for i in range(1,4): print "Welcome",i,"times."
输出示例:
*** Generates a list of 3 values starting from 0 *** Welcome 0 times. Welcome 1 times. Welcome 2 times. *** Generates a list of 3 values starting from 1 *** Welcome 1 times. Welcome 2 times. Welcome 3 times.
建议您使用xrange()函数来节省内存:
#!/usr/bin/python # Python for loop using range() print "*** Generates a list of 3 values starting from 0 using xrange() ***" for i in xrange(3): print "Welcome",i,"times." print "*** range() vs xrange() ***" print "range() creates a list containing numbers all at once." print "xrange() creates a list containing numbers as needed."
Python for循环列表示例
以下示例说明了使用列表的for语句的用法:
#!/usr/bin/python # Sample for loop using a List ## define a list shuttles = ['columbia', 'endeavour', 'challenger', 'discovery', 'atlantis', 'enterprise', 'pathfinder' ] ## Read shuttles list and store the value of each element into s and display on screen for s in shuttles: print s
输出示例:
columbia endeavour challenger discovery atlantis enterprise pathfinder
要打印索引及其值,请尝试enumerate()。
它简化了常用的循环方法。
它为所有可迭代的集合提供了与iteritems()为字典提供紧凑,易读,可靠的索引符号相同的优点:
#!/usr/bin/python # A list of shuttles shuttles = ['columbia', 'endeavour', 'challenger', 'discovery', 'atlantis', 'enterprise', 'pathfinder' ] ## Read shuttles list and enumerate into index and value for index, value in enumerate(shuttles): print index, value
输出示例:
0 columbia 1 endeavour 2 challenger 3 discovery 4 atlantis 5 enterprise 6 pathfinder
使用for循环的字典数据类型示例
字典由键索引。
您可以通过Python for循环使用键和值对。
以下示例说明了此概念:
#!/usr/bin/python # define a dict data type for our dns server as geoLocation : DNS server name dnsservers = {"us":"ns1.theitroad.com", "uk":"ns2.theitroad.local", "asia":"ns3.theitroad.org" } # Python for loop for key,value using dict data type for location, server in dnsservers.iteritems(): print server, "dns server is located in" , location
输出示例:
ns2.theitroad.local dns server is located in uk ns1.theitroad.com dns server is located in us ns3.theitroad.org dns server is located in asia
下面的示例遍历字典数据类型,并且仅在找到匹配项时才显示结果:
#!/usr/bin/python ## Dict data type dnsservers = {"us":"ns1.theitroad.com", "uk":"ns2.theitroad.local", "asia":"ns3.theitroad.org" } ## Is location found ? found = False ## INPUT: Search for a geo location search_ns_location = raw_input("Provide geo location ") ## Use for loop to search geo location for ns for location, server in dnsservers.iteritems(): if location == search_ns_location: print server, "dns server is located in" , search_ns_location found = True ## Display an error if found == False : print search_ns_location ,"not a valid geo location."
输出示例:
Provide geo location asia ns3.theitroad.org dns server is located in asia Provide geo location nyc nyc not a valid geo location.
如何用于无限循环?
可以使用while True:
语法创建一个无限for循环:
#!/usr/bin/python # Use while loop as follows to run from 1 (i=1) to infinity # The following will run infinity times i=1 while True: print "Welcome", i, "times. To stop press [CTRL+C]" i += 1
您可以使用sleep()添加延迟,如下所示
#!/usr/bin/python # Use while loop as follows to run from 1 (i=1) to infinity # The following will run infinity times import time i=1 while True: print "Welcome", i, "times. To stop press [CTRL+C]" i += 1 # Delay for 2 seconds time.sleep(2)
输出示例:
无限循环程序输出
有条件退出有休息
您可以使用for循环中的break语句来提前退出。
语法为:
for condition: if condition is true: break
提前退出示例:
#!/usr/bin/python # Use while loop as follows to run from 1 (i=1) to infinity # The following will run infinity times import time i=1 while True: print "Welcome", i, "times. To stop press [CTRL+C]" i += 1 #### Delay for 2 seconds #### time.sleep(2) #### Die (early exit) if i is 5 #### if i == 5: print "Early exit detected...terminating infinity" break
输出示例:
Welcome 1 times. To stop press [CTRL+C] Welcome 2 times. To stop press [CTRL+C] Welcome 3 times. To stop press [CTRL+C] Welcome 4 times. To stop press [CTRL+C] Early exit detected...terminating infinity