PoEdu培训 Python班 第三课 Python 序列, 条件语句和循环语句
文章类别: 培训笔记 0 评论

PoEdu培训 Python班 第三课 Python 序列, 条件语句和循环语句

文章类别: 培训笔记 0 评论

Python 序列, 条件语句和循环语句

本文的Python知识基于 Python3

序列

List(列表)

# list小练习
>>> names = ['Hades', 'Studio', "Welcome"]
>>> type(names)
<class 'list'>
>>> print(names)
['Hades', 'Studio', 'Welcome']
>>> print(names[0])
Hades
>>> print(names[1])
Studio
>>> type(names[0])
<class 'str'>
>>> names = [1, 2, 3]
>>> type(names)
<class 'list'>
>>> print(names)
[1, 2, 3]
>>> print(names[0])
1
>>> print(names[1])
2
>>> type(names[0])
<class 'int'>
>>> names = ["1", 2, 3.00000, True, 5, "666"]
>>> type(names)
<class 'list'>
>>> print(names)
['1', 2, 3.0, True, 5, '666']
>>> print(names[0])
1
>>> print(names[1])
2
>>> print(names[2])
3.0
>>> print(names[3])
True
>>> print(names[4])
5
>>> print(names[5])
666
>>> type(names[0])
<class 'str'>
>>> type(names[1])
<class 'int'>
>>> type(names[2])
<class 'float'>
>>> type(names[3])
<class 'bool'>
>>> type(names[4])
<class 'int'>
>>> type(names[5])
<class 'str'>
>>> names = [1, [2,3,4], 5, 'Hello', "World", True, 10.00000, [666,888]]
>>> type(names)
<class 'list'>
>>> print(names)
[1, [2, 3, 4], 5, 'Hello', 'World', True, 10.0, [666, 888]]
>>> print(names[0])
1
>>> print(names[1])
[2, 3, 4]
>>> print(names[2])
5
>>> print(names[3])
Hello
>>> print(names[4])
World
>>> print(names[5])
True
>>> print(names[6])
10.0
>>> print(names[7])
[666, 888]
>>> type(names[0])
<class 'int'>
>>> type(names[1])
<class 'list'>
>>> type(names[2])
<class 'int'>
>>> type(names[3])
<class 'str'>
>>> type(names[4])
<class 'str'>
>>> type(names[5])
<class 'bool'>
>>> type(names[6])
<class 'float'>
>>> type(names[7])
<class 'list'>
>>> names[1]
[2, 3, 4]
>>> names[1][0]
2
>>> type(names[1])
<class 'list'>
>>> type(names[1][0])
<class 'int'>
>>> mylist = [0, 1, '2', "3", [4, 5], 6]
>>> mylist[10]   # 错误的
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> mylist[-1]      # 取最后一个
6
>>> mylist[-2]      # 倒数第二个
[4, 5]
>>> len(mylist)     # 取长度
6
>>> mylist[len(mylist) - 1]     # 取最后一个
6
>>> 

list的函数

len()

append()

insert()

pop()

clear()

copy()

count()

reverse()

sort()

remove()

index()

extend()

# 练习小例子

>>> mylist = [1,2,3,4]
>>> len(mylist)
4
>>> mylist.append(10)           # 在末尾追加元素
>>> print(mylist)
[1, 2, 3, 4, 10]
>>> len(mylist)
5
>>> mylist.insert(4, 5)         # 在指定的索引位置前插入元素
>>> mylist.insert(5, 6)
>>> print(mylist)
[1, 2, 3, 4, 5, 6, 10]
>>> len(mylist)
7
>>> mylist.pop()                # 弹出最后一个元素
10
>>> print(mylist)
[1, 2, 3, 4, 5, 6]
>>> mylist.pop(2)               # 弹出指定索引位置的元素
3
>>> print(mylist)
[1, 2, 4, 5, 6]
>>> len(mylist)
5
>>> mylist1 = mylist.copy()     # 复制list到mylist1
>>> print(mylist1)
[1, 2, 4, 5, 6]
>>> len(mylist1)
5
>>> mylist.append(1)
>>> mylist.append(1)
>>> mylist.count(1)             # 统计 1 这个元素出现的次数
3
>>> mylist.count(2)             # 统计 2 这个元素出现的次数
1
>>> mylist.count(20)            # 统计 20 这个元素出现的次数
0
>>> mylist.index(3)              # 找出与指定值第一个匹配项的索引位置
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 3 is not in list
>>> mylist.index(4)              # 找出与指定值第一个匹配项的索引位置
2
>>> mylist.index(15)             # 找出与指定值第一个匹配项的索引位置
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 15 is not in list
>>> mylist2 = [10, 11, 12, 13, 14, 15]
>>> print(mylist2)
[10, 11, 12, 13, 14, 15]
>>> print(mylist)
[1, 2, 4, 5, 6, 1, 1]
>>> mylist.extend(mylist2)      # 用mylist2扩展mylist
>>> print(mylist)
[1, 2, 4, 5, 6, 1, 1, 10, 11, 12, 13, 14, 15]
>>> print(mylist1)
[1, 2, 4, 5, 6]
>>> mylist1.reverse()           # 倒序
>>> print(mylist1)
[6, 5, 4, 2, 1]
>>> mylist1[0] = 8
>>> mylist1[1] = 4
>>> mylist1[2] = 6
>>> mylist1[3] = 1
>>> mylist1[4] = 3
>>> mylist1[5] = 5              # 没有的下标会出错, 不会新建元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> print(mylist1)
[8, 4, 6, 1, 3]
>>> mylist1.sort()              # 排序, 默认正序
>>> print(mylist1)
[1, 3, 4, 6, 8]
>>> print(mylist)
[1, 2, 4, 5, 6, 1, 1, 10, 11, 12, 13, 14, 15]
>>> mylist.remove(1)            # 移除值为 1 的元素
>>> print(mylist)
[2, 4, 5, 6, 1, 1, 10, 11, 12, 13, 14, 15]
>>> mylist.remove(0)            # 移除值为 0 的元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> print(mylist)
[2, 4, 5, 6, 1, 1, 10, 11, 12, 13, 14, 15]
>>> mylist.remove(2)            # 移除值为 2 的元素
>>> print(mylist)
[4, 5, 6, 1, 1, 10, 11, 12, 13, 14, 15]
>>> mylist.clear()              # 清空list
>>> print(mylist)
[]
>>> len(mylist)
0
>>> 

tuple(元组)

# 元组小练习
>>> Hades = ()
>>> type(Hades)
<class 'tuple'>
>>> Hades = ("Hades")   # 注意, 此处的小括号只表示优先级, 不表示创建一个元组
>>> type(Hades)
<class 'str'>
>>> Hades = ("Hades",)  # 此处才是创建一个 一个元素 的元组, 必须加一个 , 才可以
>>> type(Hades)
<class 'tuple'>
>>> Hades = ("Hades", 28, True)     # 一个人物
>>> Hlb = ['Hades', 28, True]       # 一个人物
>>> print(Hades)
('Hades', 28, True)
>>> print(Hlb)
['Hades', 28, True]
>>> Hlb[0] = "Hlb"      # list可修改
>>> print(Hlb)
['Hlb', 28, True]
>>> Hades[0] = "H";     # 元组 无法修改
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> print(Hades)
('Hades', 28, True)
>>> Hades = ("Hades", 28, True, [30, 40, 30])   # 一个人物
>>> print(Hades)
('Hades', 28, True, [30, 40, 30])
>>> Hades[3][1] = 35    # 可修改, 因为改的是 list
>>> print(Hades)
('Hades', 28, True, [30, 35, 30])
>>> Hlb = [30, 40, 50];
>>> Hlb1 = [30, 40, 60];
>>> Hades = ("Hades", 28, True, Hlb)
>>> print(Hades)
('Hades', 28, True, [30, 40, 50])
>>> Hlb[1] = 35
>>> print(Hades)
('Hades', 28, True, [30, 35, 50])
>>> Hades[3][0] = 35
>>> print(Hades)
('Hades', 28, True, [35, 35, 50])
>>> print(Hlb)
[35, 35, 50]
>>> Hades[3] = Hlb1     # 出错了, 不能修改元组的数据
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> 

注意

条件语句

if 判断条件 :
    # 执行的语句块
elif 判断条件 :
    # 执行的语句块
else :
    # 执行的语句块
# if 小例子
>>> num = 51
>>> if num >= 50 :
...     print("50知天命...")
... elif num >= 40 :
...     print("40不惑...")
... elif num >= 30 :
...     print("30而立...")
... else:
...     print("这个....总不能是豆蔻年华吧...")
... 
50知天命...
>>> 

>>> num = 41
>>> if num >= 50 :
...     print("50知天命...")
... elif num >= 40 :
...     print("40不惑...")
... elif num >= 30 :
...     print("30而立...")
... else:
...     print("这个....总不能是豆蔻年华吧...")
... 
40不惑...
>>> 

>>> num = 18
>>> if num >= 50 :
...     print("50知天命...")
... elif num >= 40 :
...     print("40不惑...")
... elif num >= 30 :
...     print("30而立...")
... else:
...     print("这个....总不能是豆蔻年华吧...")
... 
这个....总不能是豆蔻年华吧...
>>> 

循环语句

while 判断条件 :
    # 语句...
else :
    # 语句...

for 变量 in 序列 :
    # 语句...
else:
    # 语句...
# 一个综合小例子 验证用户名密码 三次不正确则退出

# =============================== for版本 ===============================
print("===============================\n这是for循环的版本....\n===============================\n")

i = 0
'''
还可以这样写, 这就是 遍历元组
for i in (0, 1, 2)
也可以这样写, 这就是 遍历 list
for i in [0, 1, 2]
'''
for i in range(0, 3) :   # 循环 0, 1, 2, range返回一个list
    name = input("请输入用户名:")
    pwd = input("请输入密码:")
    if name != 'boot' or pwd != 'boot' : 
        print("用户名或密码错误, 您还有", 3 - i - 1, "次机会")
    else:
        break
else:
    print('您已经木有机会了.....')
if i < 3 :
    print("恭喜你登陆成功!")

# =============================== while版本 ===============================

print('''
===============================
这是while循环的版本....
===============================
''')
j = 0
while j < 3 :
    name = input("请输入用户名:")
    pwd = input("请输入密码:")
    if name != 'boot' or pwd != 'boot' : 
        print("用户名或密码错误, 您还有", 3 - j - 1, "次机会")
        j += 1
    else:
        break
else:
    print("您的机会都浪费完了.....程序要退了....")
if j < 3 :
    print("恭喜你登陆成功!")

未完待续...

如有错误,请提出指正!谢谢.

回复