python3基础05

day05

for语句:
  作用:
    用来遍历可迭代的对象的数据元素
      遍历是指依次经历对象,并且只经历一次
      可迭代对象是指能依次获取数据元素的对象
     (字符串/range()/列表)
  可迭代对象包括:
    字符串 str
    ---以下后面会讲-----
    列表   list
    元组   tuple
    ....

for语句语法:
   for 变量列表 in 可迭代对象:
      语句块1
   else:     (当迭代结束时才被执行)
       语句块2
示例:
  for.py

练习一:
  1.任意输入一段字符串
  1)计算出输入字符'a'的个数,并打印出个数
  2)计算出空格的个数,并打印出个数
     (要求用for语句,不允许用str,count语句)
  思考:
   用while语句能否实现上述功能

for语句说明:
   else子句部分可以省略
   当在循环内部用break终止循环时,else子句部分不会执行

示例:
  见for1.py


range函数:
  range(stop) 用来生成0-stop区间内的整数直到stop为止(不包含stop)
  range(start,stop[,step])
         起始  终止   步长
  用来生成start~stop区间内的整数,直到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)      #空   

练习二:
  1.用for语句打印1~20的整数,打印在一行内:
     1 2 3 4 5....20
  2.计算1+3+5+7+9+....+99
   分别用for和while实现


for语句变量可能不被创建的问题:
  for x in range(4,0):
      print(x)
  print('x绑定',x)
  示例:
   for2.py

for注意问题:
   示例:
    for3.py

for语句的嵌套:
  for x in "ABC":
      for y in "123":
          print(x+y)
   #打印九次

思考下列程序的打印次数:
 for x in range(5):
     for y in range(10):
         print("hello")
 #请问打印多少个hello?

 练习三:
 1.求:100以内有哪些数与自身+1的乘积再对11求余等于8?
   x*(x+1)%11==8

 2.输入一个数,打印如下正方形(用for实现)
  请输入:5
  打印:
   12345
   12345
   12345
   12345
   12345

 3.请输入一个数,打印如下正方形(用for实现)
  请输入:5
  打印:
    12345
    23456
    34567
    45678
    56789

 4.用程序生成如下字符串:
  1)"ABCDEFG.....XYZ"
   2)"AaBbCcDd........XxYyZz"
   提示:
    可以用ord和char函数

 5.打印全世界所有的文字


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

 fo中使用continue语句的示例:
     continue.py
     continue1.py


 练习四:
  1.求1-100之间所有不能被2,3,5,7整除的数的和


while中使用continue语句的示例:
   while_continue.py

循环小结:
  四条语句:
   while语句
   for语句
   break语句      # 协助循环
   continue语句   # 协助循环
  可迭代对象:
    str字符串
    range() 函数返回的对象
  


列表list
  问题:
    如何将计算机运算的数据临时保存在一个地方,同时又方便添加,删除和修改等操作
  容器
    
列表的定义:
  列表是一种容器
  列表是可以改变的序列
  列表是由一系列特定元素组成的,元素与元素之间可能没有任何的关联关系,但他们之间有先后顺序关系

python3中的五种序列类型:
  字符串str
  列表  list
  元组 tuple
  字节串  bytes
  字节数组 bytearray

 
创建空列表的字面值表达式
  []   #创建一个空列表
 l=[]     变量l绑定一个新创建的一个空列表 
创建飞空的列表的字面值:
  l={1,2,3,4}         变量l绑定一个新创建且含有四个元素的列表
  l=['beijing','shanghai','shenzhen']
  l=[1,'Two',3.14,'四']
  l=[1,2,[3.1,3.2,3.2]]

列表的构造函数list:
  list() 生成一个空列表,等同于[]
  list(iterable) 用可迭代对象创建一个列表

示例:
 l=list()          #l=[]
 l=list("hello")   #l=['h','e','l','l','o']
 l=list(range(5))  #l=[0,1,2,3,4]

 列表的运算:
   算术运算:
   +  +=  *   *=   (运算规则与字符串的运算规则相同)
  
   +  用于拼接列表,生成新的列表
   x=[1,2,3]
   y=[4,5.6]
   z=x+y   #z=[1,2,3,4,5,6]

   +=  用原列表与右侧可迭代对象追加来修改原列表
   语法:
     列表变量 += 可迭代对象
   示例:
     x = [1,2,3]
     y = [4,5,6]
     x += y  #x=[1,2,3,4,5,6]
     x += 'ABC'   #x=[1,2,3,'A','B','C']
     x = [1,2,3]
     x += range(4,6) #x=[1,2,3,4,5]

     # +=是改变原来的列表对象,并不会创建新的列表
     x = [1,2,3]
     print(id(x))
     x += [4,5,6]
     print(id(x))
     示例:
      list_add.py


     注:列表是可变的对象,+=是修改原来的对象
        字符串是不可变对象 +=是创建新的对象

   * 生成重复的列表
     x=[1,2]*3    #x=[1,2,1,2,1,2]

   *= 生成重复的列表,并改变对变量的绑定
     x=[1,2,3]
     x*=4   #x=[1,2,3,1,2,3,1,2,3,1,2,3]

列表的比较运算:
   运算符:
     <   <=  >  >=  ==  !=
     比较规则与字符串的比较规则相同

   示例:
    [1,2,3]<[1,2,4]    #True
    [1,2,3]<[3,2,1]    #True
    [1,2,3]==[3,2,1]   #False
    [2,3]>=[1,2,3]     #True

    [1,'2']>['2',1]    #报错
    ['ABC',1,2,3]<['123',3,2]    #False

列表是可迭代对象
  l=[1,3,5,7]
  for x in l:
      print(x)   #1 3 5 7

练习五:
1.输入三行文字,将这三行文字保存在列表L中,并打印
 如:
  请输入:abc<回车>
  请输入:1234<回车>
  请输入:你好<回车>
 生成如下列表L=['abc','1234','你好']
print(L)
2.输入任意行文字,存于列表L中,当不输入内容直接回车后结束输入:
 1)打印列表L的内容
 2)打印出您刚才输入了几行文字信息
 3)打印出您刚才输入了多少个字符数据

课后练习:
1.写一个程序,任意输入一个数,判断这个数是否是素数(prime)
 素数(也叫质数),是只能被1和自身整除的正整数
  如:2 3 5 7 11  13  17 19....
提示:
  用排除法:判断x是否为素数时.只要让x分别除以2,3,4,5...,x-1
  只要能整除则x不是素数,否则x时素数
2.输入一个正整数(代表树干的高度)
  打印如下一棵圣诞树
  如:
   输入:2
  打印:
   *
   ***
    *
    *
   输入:3
  打印:
    *
   ***
  *****
    *
    *
    *

 3.算出100~999之间的水仙花数(Narcissistic Number)
 水仙花数是指百位的3次方+十位的3次方+个位的3次方等于原数的整数
 例如:
   153=1**3+5**3+3**3
 答案:
   153  370...

猜你喜欢

转载自blog.csdn.net/qq_24137739/article/details/83590743