python基础day05笔记

2018.7.6

day04回顾:

  字符串
    字符串格式化表达式
      字符串  % (参数)
    生成一定格式字符串
    %%
    %d
    %s
    ...
  占位符和类型码之间的 格式化语句
    %+07.2f
    %-+7.2f
    
  循环语句
    break
  
while 语句
  语法:
    while 真值表达式:
        语句块1
    else:
        语句块2


while 语句的嵌套


break 语句
  作用:
    跳出循环(结束包含此break语句的循环语句)


死循环:
  while True:
      if ....:
         break
  else:
     .......










day05笔记:


for 语句
  作用:
    用来遍历可迭代对象的数据元素


可迭代对象是指能依次获取数据元素的对象
可迭代对象包括:
  字符串 str
  ----以下后面会讲----
  列表 list
  元组 tuple
  字典 dict
  ...


for 语法
  for 变量列表 in  可迭代对象:
      语句块1
  else:
      语句块2


  说明:
    当循环内部用break语句终止循环时,else子句部分的语句不会执行
  示例见:
    for.py
    for2.py
    for3.py


练习:
  任意输入一段字符串
    1) 计算您输入的字符'A' 的个数,并打印出来
    2) 计算出空格的个数,并打印出来
      (要求用for语句,不允许使用, S.count方法)


  思考用while语句能否实现上述功能




range() 函数:
  格式:
    range(stop)  从零开始,每次生成一个整数后加1操作,直到stop为止(不包含stop)
    range(start, stop[, step]) 从 start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以是负数)
  详见:
    >>> help(range)
  作用:
    用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)
  说明:
    range函数调用返回的对象可用于for语句来进行依次迭代取出其中的整数
  示例:
    range(4)     # 生成 0, 1, 2, 3
    range(3, 6)  # 生成 3, 4, 5
    range(1, 10, 2)  # 生成 1, 3, 5, 7, 9
    range(5, 0, -2)  # 生成 5, 3, 1
    range(4, 0)      # 空
  见:
    range.py


练习:
  用for 语句打印1~20 打印在一行内




练习:
  求 100以内有哪儿些整数与自身+1的乘积再对11求余的结果等于8?


      x * (x+1) % 11 == 8  x附合条件


  1. 写程序计算  1 + 3 + 5 + 7 + ...+ 99的和
    (要求用for语句和while语句两种方式实现)


  2. 用while语句实现打印:
     1 3 5 7 9. .... 19 
     打印在一行内


  3. 将上题用for语句来实现






for 语句嵌套:
  示例:
    for x in "ABC":
        for y in "123":
            print(x + y)
  思考:
    for x in range(5):
        for y in range(10):
            print(x, y, 'ABC')  # 请问这条语句执行多少次?


练习:
  用for 语句实现下题 :
    1. 输入一个数w代表正方形的宽度,打印如下正方形:
      如输入:5
        1 2 3 4 5
        1 2 3 4 5
        1 2 3 4 5
        1 2 3 4 5
        1 2 3 4 5
    2. 写程序来改写上题:
      如输入: 5
      打印如下:
        1 2 3 4 5
        2 3 4 5 6
        3 4 5 6 7
        4 5 6 7 8
        5 6 7 8 9
      如输入: 3
      打印如下:
        1 2 3
        2 3 4
        3 4 5


continue 语句:
  问题:
    如何让程序不再向下执行,重新开始一次新的循环


  continue语句的作用:
    用于循环语句中(while, for语句),不再执行本次循环内 continue之后的语句,重新开始一次新的循环
  说明:
    1. 在while语句中执行continue语句,将会直接跳转到 while语句的直值表达式处重新判断循环条件
    2. 在for 语句中,执行continue语句,将会从可迭代对象中取一下元素绑定变量后再次进行循环


  示例见:
    continue.py


练习:
  1. 输入一个整数用begin绑定,
  再输入一个整数用end绑定
  打印从begin开始,到end结束内的全部奇数(不包含end)


  2. 将上述练习改写为 用while语句实现


  3. 求 1~100 之间所有不被 5, 7, 11 整除的数的和
    (可以考虑用continue实现)








循环总结
  语句:
    while 语句
    for 语句
       字符串 str
       range() 函数返回的对象
    break 语句:  结束当前循环语句的执行
    continue 语句:  结束本次循环,重新开始新的循环


列表 list
  列表的定义 :
    1. 列表是一种容器(通常用来存储计算机的数据对象)
    2. 列表是可以被改变的序列
    3. 列表是由一系列特定元素组成的,元素与元素之间可能没有任何的关联关系,但他们之间有先后顺序关系


创建空列表的字面值方式
  L = []    # L绑定空列表


创建非空列表的字面值方式
  L = [1, 2, 3, 4]
  L = ['北京', '上海', '深圳', '西安']
  L = [1, 'Two', 3.14, '四']
  L = [1, 2, [3.1, 3.2, 3.3], 4]


列表的构造(创建)函数list
  list()   生成一个空的列表,等同于 []
  list(iterable)  用可迭代对象创建一个列表
示例:
  L = list()         # L = []
  L = list("hello")  # L = ['h', 'e', 'l', 'l', 'o']
  L = list(range(5, 10, 2))  # L = [5, 7, 9]




列表的运算:
  运算符:
    +   +=   *   *= 
  + 用于拼接列表
    x = [1, 2, 3]
    y = [4, 5, 6]
    z = x + y  # [1, 2, 3, 4, 5, 6]
  += 用于将右侧的可迭代对象的数据追加到原列表中
    x = [1, 2, 3]
    x += [4, 5, 6]  # x = [1, 2, 3, 4, 5, 6]
    x = [1, 2]
    x += "AB"  # x = [1, 2, 'A', 'B']
    x = [1, 2]
    x += range(3)  # x = [1, 2, 0, 1, 2]
  * 用于生成重复的列表
    x = [1, 2] * 3  # x = [1, 2, 1, 2, 1, 2]
    x = list("AB")
    x *= 2  # x = ['A', 'B', 'A', 'B']


列表的比较运算:
  运算符:
    < <= > >= == !=
  比较规则:
    同字符串比较规则完全相同
  [1, 2, 3] < [1, 3, 2]  # True
  [1, 2, 3] != [3, 2, 1]  # True
  [1, 'two'] > ['two', 1]  # TypeError 出错


  [1, 'two', 3.14] < [1, '二', 3]


列表是可迭代对象:
  L = [2, 3, 5, 7, 11]
  for x in L:
      print(x)


列表的in / not in 运算符:
  判断一个元素是否存在于列表中,如果存在返回True,否则返回 False
  in 和 not in 的返回值相反
  示例:
    x = [1, 'two', 3, '四']
    3 in x   # True
    4 not in x  # True
    '3' in x   # False


练习:
  1 输入三行文字,将这三行文字, 保存于一个列表L中,并打印
    如:
      请输入: abc<回车>
      请输入: 123<回车>
      请输入: 你好<回车>
    生成列表如下:
      L = ['abc', '123', '你好']
      print(L)  打印


练习:
  1. 输入任意行文字,存于列表L中,当不输入任何内容直接回车后结束输入
   1) 打印L列表中的内容
   2) 计算您共输入了几行内容
   3) 计算您共输入了多少个字符


  2. 输入一个整数(代表树干的高度)
     打印出如下一棵树
     输入: 2
     打印:
      *
     ***
      *
      *
     输入:3
       *
      ***
     *****
       *
       *
       *
  3. 写一个程序,任意输入一个整数,判断这个数是否是素数(prime)
    素数(也叫质数), 是只能被1和自身整除的正整数:
      如: 2 3 5 7 11 等
    提示:
      用排除法: 当判断x是否是素数是,只要让x分别除以:
        2, 3, 4, 5, .... x-1, 只要整除了,那x不是素数,否则x是素数
  4.算出100~1000以内的水仙化数(Naricissistic Number)
    水仙花数是指百位的3次方 加上 十位的3次方 加上 个位的3次方等于原数的数
    如:
      153 = 1**3 + 5**3 + 3**3
    答案:
      153, 370, ....

猜你喜欢

转载自blog.csdn.net/qq_42584444/article/details/81057684
今日推荐