天天看点

Python全栈工程师(for、列表)

ParisGabriel

Python 入门基础

for:

用来遍历可迭代对象的数据元素

可迭代对象是指以此获取数据元素的对象

可迭代对象包括:

字符串 str

列表 list

元组 tuple

字典 dict

语法:

for 变量列表 in 可迭代对象:

L = ["a", "abc", "中国", 123]
for x in L:
    print(x)
else:
    print("结束")      

说明:

当循环内部使用break结束循环时,else将不再执行并且else 可以省略

range()函数:

range(stop) 从零开始,每次生成一个整数后加1操作,直到stop为止(不包含stop)

range(star,stop[,step])

从star开始每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以是负数)

help(range) 查询帮助

作用:

用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)

for x in range(0, 10, 3):
    print(x)
      
Python全栈工程师(for、列表)

range函数带调用返回的对象可用于for语句来进行依次迭代取出其中的函数

for嵌套:

for x in range(5):
    for y in range(3):
        print(x, y, "ABC")
      
Python全栈工程师(for、列表)

continue:

用于循环语句中(while、 for )不再执行本次循环内continue之后的语句

重新开始一次新的循环

for x in range(10):
    if x % 2 == 0:
        continue
    print(x)
      
Python全栈工程师(for、列表)

在while中直接跳到真值表达式重新判断

在for中直接将可迭代对象内的元素绑定到下一个再次循环

列表 list:

列表是一种容器(通常用来储存计算机的数据对象)

列表是可以被改变的序列

是由一系列特定元素组成的 元素与元素之间可能没有任何关联关系

但他们由先后顺序关系

空列表创建方式:

L=[ ]

列表是可迭代对象:

非空列表创建方式:

空列表:
L = []

非空列表:
L = [1, 2, 3, 4]
L = ["a", "b", "c"]
L = [1, 2, ["a", "b", "c", "d"], 3, 4]      

列表的构造函数list:

list()等于空列表

list(iterable)用可迭代对象创建一个列表

列表的运算:

+ 用于拼接列表

+= 用于将右侧的可迭代对象的数据追加到原列表中

* 用于生成重复列表

*=

列表的比较运算:

< <= > >= == !=

比较规则和字符串完全相同

列表的in、notin:

判断一个元素是否存在于列表中 如果纯在返true否则false

in 和 nat in 返回值相反

练习:

1.用for实现:

输入一个数W代表正方形的宽度:

1 2 3 4 5

答案:

a = int(input("plaese input at will integer:"))
for x in range(1, a + 1):
    for y in range(1, a + 1):
        print(y, end = " ")
    print()
      
Python全栈工程师(for、列表)

改写上上题:

2 3 4 5 6

3 4 5 6 7

4 5 6 7 8

5 6 7 8 9 

第一种:
a = int(input("plaese input at will integer:"))
for x in range(1, a + 1):
    for y in range(x, a + x):
        print("0%2d" % y, end = " ") print()      
第二种:      
a = int(input("plaese input at will integer:"))
for x in range(1, a + 1):
    for y in range(x, a + x):
        print(y, end = " ")
    print()
      

  

Python全栈工程师(for、列表)

2.

输入任意文字,存于列表L中,当不输入任何内容直接回车后结束输入

打印L列表中的内容

计算你共输入几行内容、和多少个字符

L = []
i = 0
while True:
    a = input("plaese input at will string:")
    if a == "":
        break
    i += len(a)
    L += [a]
print('''
L = : %s
you have entered:%d row
%d Entries character
    ''' % (L, len(L), i))
      
Python全栈工程师(for、列表)

3.

输入一个整数 (代表树干高度)

打印出如下一颗树

输入:2

 *

***

输入3

  *

 ***

*****

a = int(input("plaese input at will integer:"))
for x in range(1, a * 2, 2):
    print(("*" * x).center(a * 2))
else:
    for s in range(1, a * 2, 2):
        print("*".center(a * 2))
      
Python全栈工程师(for、列表)

4.

任意输入一个整数 判断这个数是否是素数(prime)

素数也叫质数,是只能被1和自身整除的数:

如:2 3 5 7 11 等

提示:

用排除法:判断x是否是素数是,只要让x分别除以:2 3 4 5 ...-1

只要整除了 那x不是素数,否则x是素数

a = int(input("plaese input at will integer:"))
for x in range(2, a):
    if a % x == 0:
        s = "it's not a prime"
        break
    else:
        s = "This is a prime"
print(s      
Python全栈工程师(for、列表)

5.

算出100 ~ 1000以内的水仙花数(naricissistic)

水仙花数是指百位的3次方 加上十位的3次方 加上各位的3次方等于原数的数

153=1**3+5**3+3**3 153 370

for x in range(100, 1000):
    if (x // 100) ** 3 + ((x % 100) // 10) ** 3 + (x % 10) ** 3 == x:
        print(x)
      
Python全栈工程师(for、列表)