开发者

Python中的for循环详情

开发者 https://www.devze.com 2022-12-02 12:54 出处:网络 作者: 尤而小屋
目录1、可迭代对象1.1什么是可迭代对象1.2怎么判断2、字符串的for循环3、列表的for循环4、元组的for循环5、字典的for循环5.1keys()5.2 values()5.3 items()6、range函数的for循环6.1基础案例6.2找出100以内能够被5整
目录
  • 1、可迭代对象
    • 1.1什么是可迭代对象
    • 1.2怎么判断
  • 2、字符串的for循环
    • 3、列表的for循环
      • 4、元组的for循环
        • 5、字典的for循环
          • 5.1keys()
          • 5.2 values()
          • 5.3 items()

        • 6、range函数的for循环
          • 6.1基础案例
          • 6.2找出100以内能够被5整除的数
          • 6.3高斯求和
        • 7、多个for语句
          • 8、列表推导式
            • 9、for-else
              • 10、实现三角阵列
                • 11、99乘法表

                  for语句实际上解决的是循环问题。在很多的高级语言中都有for循环(for loop)。

                  for语句其实是编程语言中针对可迭代对象的语句,它的主要作用是允许代码被重复执行。看一段来自维基百科的介绍:

                  In computer science, a for-loop (or simply for loop) is a control flow statement for specifying iteration, which allows code to be executed repeatedly。(作用:介绍了for循环是什么?)

                  A for-loop has two parts: a header specifying the iteration, and a body which is executed once per iteration. (for循环是什么构成的?)

                  是什么:在计算科学中,是针对特殊迭代对象的控制流语句,能够重复执行

                  怎么构成:一个头部(是可迭代对象)+ 每个对象的执行

                  Python中的for循环详情

                  1、可迭代对象

                  1.1什么是可迭代对象

                  可迭代对象(Iteratable Object) 是能够一次www.cppcns.com返回其中一个成员的对象,比如我们常用的字符串、列表、元组、集合、字典等等之类的对象都属于可迭代对象,获取到这些对象我们就可以用for循环来进行操作。

                  简单来理解,任何你可以循环遍历的对象都是可迭代对象。

                  1.2怎么判断

                  如何判断一个python对象是不www.cppcns.com是可迭代对象?通常是使用 isinstance()函数来判断对象是否是可迭代对象

                  from collections import Iterable
                  
                  
                  

                  Python中的for循环详情

                  小结:在Python常见的数据对象中,只有数字是不可迭代的,字符串、元组、列表、字典等都是可迭代的

                  2、字符串的for循环

                  一次遍历打印字符串中的每个元素

                  for i in "python": 
                      print(i)    
                  
                  
                  

                  输出:

                  p

                  y

                  t

                  h

                  o

                  n

                  在看另一个例子:

                  for i in "abcdefg":
                      print(i)
                  
                  
                  

                  输出:

                  a

                  b

                  c

                  d

                  e

                  f

                  g

                  3、列表的for循环

                  不管是单层列表还是多层的嵌套列表,我们都可以遍历打印出来:

                  # 单层列表
                  
                  a = ["小明","小红","小张","小王"]
                  
                  for i in a:
                      print(i)  # 打印列表中的每个元素
                  

                  小明LIeERaSVeU

                  小红

                  小张

                  小王

                  # 嵌套列表
                  
                  b = ["小明","小红","小张","小王",[19,20,18,23]]
                  
                  for i in b:
                      print(i)
                  

                  小明

                  小红

                  小张

                  小王

                  [19, 20, 18, 23]

                  上面的例子中最后一个元素当做整体被打印出来,如果也想分开打印呢?

                  defwww.cppcns.com qiantao(x):   # 定义一个函数
                      for each in x:  # 遍历每个原始列表中的每个元素
                          if isinstance(each, list):  # 判断每个元素是否是列表:isintance
                              qiantao(each)  # 如果是列表,递归执行函数qiantao()
                          else:
                              print(each)  # 如果不是列表,就直接打印该元素
                              
                  b = ["小明","小红","小张","小王",[19,20,18,23]]
                  
                  # 调用函数,传入列表b
                  qiantao(b)  
                  

                  小明

                  小红

                  小张

                  小王

                  19

                  20

                  18

                  23

                  4、元组的for循环

                  元组tuple的循环和列表是类似的:

                  t = ("小明","小红","小王")
                  
                  for i in t:
                      print(i)
                  

                  小明

                  小红

                  小王

                  5、字典的for循环

                  我们使用keys()values()items() ,我们可以分别遍历字典的键、值和键值对。需要注意的是:遍历字典默认是遍历字典的键,先定义一个字典:

                  d = {"name":"Peter","age":20,"sex":"male","address":"china"}
                  
                  

                  5.1keys()

                  遍历字典的键;

                  for i in d.keys():  # 遍历字典的键
                      print(i)
                  
                  
                  

                  name

                  age

                  sex

                  address

                  for i in d:  # 默认就是遍历键的取值
                      print(i)
                  
                  
                  

                  name

                  age

                  sex

                  address

                  5.2 values()

                  遍历字典的值:

                  for i in d.values():  # 遍历字典的值
                      print(i)
                  
                  
                  

                  Peter

                  20

                  male

                  china

                  5.3 items()

                  同时遍历字典的键和值

                  for i in d.items():  # 遍历字典的值
                      print(i)
                  
                  
                  

                  ('name', 'Peter')

                  ('age', 20)

                  ('sex', 'male')

                  ('address', 'china')

                  分别取出字典的键和值:

                  for k,v in d.items():
                      print(k + "--->" + str(v))
                  
                  
                  

                  name--->Peter

                  age--->20

                  sex--->male

                  address--->china

                  6、range函数的for循环

                  range函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。

                  • range(start,stop,step)
                  • start:包含start,默认为0,可不写则默认为0
                  • stop:不包含stop,必须写
                  • 步长step可正可负,默认是1,不能为0

                  6.1基础案例

                  range(10)  # 生成的是可迭代对象
                  
                  
                  

                  range(0, 10)

                  默认开头是0

                  range(0,10)
                  
                  
                  

                  range(0, 10)

                  指定开头为1

                  range(1,10)
                  
                  
                  

                  range(1, 10)

                  下面是将结果展开成列表:

                  list(range(10))  # 不包含10(尾部)
                  
                  
                  

                  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

                  指定步长为2:

                  list(range(0,10,2))  # 不包含10,步长是2
                  
                  
                  

                  [0, 2, 4, 6, 8]

                  总结:range函数是包含头部不包含尾部

                  for i in range(10):
                      print(i)
                  
                  
                  

                  0

                  1

                  2

                  3

                  4

                  5

                  6

                  7

                  8

                  9

                  6.2找出100以内能够被5整除的数

                  for i in range(101):  # 不包含101,0-100
                      if i % 5 == 0:  # %表示求余数:余数为0则表示整除
                          print(i,end="、")
                  
                  
                  

                  0、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100、

                  6.3高斯求和

                  求出1到100的所有数之和

                  sum = 0
                  
                  for i in range(1,101):
                      sum = sum + i  # 每循环一次,sum就是这个数字
                      
                  sum
                  

                  5050

                  求出100以内奇数的和:

                  sum = 0
                  
                  # 步长为2,从1开始:1,3,5,7...
                  for i in range(1,101,2):  
                      sum = sum + i
                      
                  sum
                  

                  2500

                  求出100以内偶数的和:

                  sum = 0
                  
                  # 步长为2,从2开始:2,4,6,8...
                  for i in range(2,101,2):  
                      sum = sum + i
                      
                  sum
                  

                  2550

                  7、多个for语句

                  for语句中还可以再使用for语句:

                  for i in ["python","java","html"]:
                      for j in i:
                          print(i.upper(),j)    # upper():将字母变成大写
                  
                  
                  

                  PYTHON p

                  PYTHON y

                  PYTHON t

                  PYTHON h

                  PYTHON o

                  PYTHON n

                  JAVA j

                  JAVA a

                  JAVA v

                  JAVA a

                  HTML h

                  HTML t

                  HTML m

                  HTML l

                  for i in [4,5,6]:
                      for j in [1,2,3]:
                          print(i*j)  # 实现任意两个数的乘法
                  
                  
                  

                  4  # 4*1

                  8  # 4*2

                  12 # 4*3

                  5  # 5*1

                  10 # 5*2

                  15 # 5*3

                  6  # 6*1

                  12 # 6*2

                  18 # 6*3

                  8、列表推导式

                  (1)上面我们提到能够被5整除的数:使用for循环和if来解决

                  five = 编程客栈[]  # 定义空列表
                  
                  for i in range(101):  # 不包含101,0-100
                      if i % 5 == 0:  # %表示求余数:余数为0则表示整除
                          five.append(i)  # 添加到列表中
                          
                  five
                  

                  [0,

                   5,

                   10,

                   15,

                   20,

                   25,

                   30,

                   35,

                   40,

                   45,

                   50,

                   55,

                   60,

                   65,

                   70,

                   75,

                   80,

                   85,

                   90,

                   95,

                   100]

                  (2)使用列表推导式如何实现呢?

                  [x for x in range(101) if x % 5 == 0]
                  
                  
                  

                  [0,

                   5,

                   10,

                   15,

                   20,

                   25,

                   30,

                   35,

                   40,

                   45,

                   50,

                   55,

                   60,

                   65,

                   70,

                   75,

                   80,

                   85,

                   90,

                   95,

                   100]

                  9、for-else

                  也许你听过if-else,但是听到for-else语句吗?这也算是Python中的一个冷门知识点

                  for i in range(5):
                      print(i)
                  else:
                      print("结束")
                  
                  
                  

                  0

                  1

                  2

                  3

                  4

                  结束

                  也就是说:for语句结束了依然会执行else的语句

                  for i in []:
                      print(i)
                      
                  else:
                      print("结束")
                  
                  
                  

                  结束

                  下面的例子中,当i除以3的余数是2的时候回跳出并终止整个for循环,后面的else就不会执行了

                  for i in range(10):
                      print(i)
                      if i % 3 == 2:
                          break
                  else:
                      print("结束")
                  
                  
                  

                  0

                  1

                  2

                  10、实现三角阵列

                  for i in range(1,11):
                      for k in range(1,i):
                          print(k, end=" ")
                      print("\n")
                  
                  

                  1

                  1 2

                  1 2 3

                  1 2 3 4

                  1 2 3 4 5

                  1 2 3 4 5 6

                  1 2 3 4 5 6 7

                  1 2 3 4 5 6 7 8

                  1 2 3 4 5 6 7 8 9

                  如果我们想要倒过来,该如何实现呢?

                  for i in range(10,0,-1):
                      for k in range(1,i):
                          print(k, end=" ")
                      print("\n")
                  
                  
                  

                  1 2 3 4 5 6 7 8 9

                  1 2 3 4 5 6 7 8

                  1 2 3 4 5 6 7

                  1 2 3 4 5 6

                  1 2 3 4 5

                  1 2 3 4

                  1 2 3

                  1 2

                  1

                  11、99乘法表

                  下面举个例子来说明如何实现99乘法表

                  for i in range(1,10):
                      for j in range(1,i+1):  # 为了保证有4*4,也就是同个数字相乘的等式,需要让i出现,使用i+1
                          print('{}x{}={}'.format(j, i, i*j), end=" ")  # end的结束符号用空格
                      print("\n")
                  
                  

                  Python中的for循环详情

                  到此这篇关于Python中的for循环详情的文章就介绍到这了,更多相关Python中的for循环内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

                  0

                  精彩评论

                  暂无评论...
                  验证码 换一张
                  取 消

                  关注公众号