1 条件控制
1.1 基本结构
1.2 多条件判断
举例:登录密码
password_list = ['*#*#','12345']
def account_login():
password = input('Password:')
password_correct = password == password_list[-1]
password_reset = password == password_list[0]
if password_correct:
print('Login success!')
elif password_reset:
new_password = input('Enter a new password:')
password_list.append(new_password)
print('You password has changed successfully!')
account_login()
else:
print('Wrong password or invalid input!')
account_login()
account_login()
#运行结果:
# Password:123
# Wrong password or invalid input!
# Password:*#*#
# Enter a new password:123
# You password has changed successfully!
# Password:123
# Login success!
2 循环
2.1 for 循环
for num in range(1,11):
print(str(num) + ' + 1 =', num + 1)
songslist = ['Holy Driver', 'Thunderstruck', 'Rebel Rebel']
for song in songslist:
if song == 'Holy Driver':
print(song, '- Dio')
elif song == 'Thunderstruck':
print(song, '- AC/DC')
elif song == 'Rebel Rebel':
print(song, '- David Bowie')
# 运行结果:
# 1 + 1 = 2
# 2 + 1 = 3
# 3 + 1 = 4
# 4 + 1 = 5
# 5 + 1 = 6
# 6 + 1 = 7
# 7 + 1 = 8
# 8 + 1 = 9
# 9 + 1 = 10
# 10 + 1 = 11
# Holy Driver - Dio
# Thunderstruck - AC/DC
# Rebel Rebel - David Bowie
2.2 while循环
3 数据结构
Python 中的数据结构包括: 列表、字典、元祖、集合。
表示方法 | |
列表 | [val1,val2] |
字典 | {key1:val1,key2:val2} |
元祖 | (val1,val2) |
集合 | {val1,val2} |
3.1 列表的增删改查
fruit = ['apple','pear']
fruit.insert(1,'grape') #增加
fruit.remove('apple') #删除
del fruit[0:2] #第二种删除方法
fruit[-1] = 'orange' #修改 通过索引方式
print(fruit) #['grape', 'orange']
列表只支持通过位置去索引。
3.2 字典
字典中的数据必须与键值对的形式出现,逻辑上键是不能重复和修改的,而值却可以。
注意:字典是不能切片的,但字典的元素可以通过[ ]来访问,里面写的是键值。
NASDAQ_code = {'BAIDU':'Baidu', 'SINA':'Sina'}
NASDAQ_code['YOUKU'] = 'Youku' #增加
NASDAQ_code.update({'FB':'Facebook','TLSA':'Telsa'}) #增加 多个元素
del NASDAQ_code['FB'] #删除
NASDAQ_code['TLSA'] #查找 通过放入字典中的键
print(NASDAQ_code)
#{'BAIDU': 'Baidu', 'SINA': 'Sina', 'YOUKU': 'Youku', 'TLSA': 'Telsa'}
3.3 元祖
元祖是不可修改的列表,只能通过索引查看。一般会编辑列表,通过tuple( )转化为元祖,元祖更省内存空间。
letters = ('a', 'b', 'c')
print(letters[0]) #a
3.4 集合
集合中是无重复的、无序的对象,因此不支持通过索引的方式进行访问。
可以进行集合运算和添加、删除元素的操作。
a_set = {1,2,3,4}
a_set.add(5) #增加
a_set.discard(5) #删除
print(a_set) #{1, 2, 3, 4}
4 数据结构中的技巧
4.1 列表排序 sorted()
num_list = [6, 2, 7, 4, 5]
print(sorted(num_list)) #正序 [2, 4, 5, 6, 7]
print(sorted(num_list, reverse=True)) #逆序 [7, 6, 5, 4, 2]
4.2 多重循环
如果需要两个列表可以使用zip函数。
num_list = [6, 2, 7, 4, 5]
str_list = ['a', 'b']
for a,b in zip(num_list,str_list):
print(b, 'is', a)
# a is 6
# b is 2
4.3 推导式
下面两种方式等价,执行上,推导式的效率要更高。
#列表推导式
a = [i**2 for i in range(0,10)]
c = [j+1 for j in range(1,10) if j % 2 == 0]
d = [letter.lower() for letter in 'ABCDEFGHIGKLMN']
print(a)
print(c)
print(d)
#字典推导式
e = {i:i+1 for i in range(4)}
g = {i:j for i,j in zip(range(1,6),'abcde')}
g = {i:j.upper() for i,j in zip(range(1,6),'abcde')}
print(e)
print(g)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# [3, 5, 7, 9]
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n']
# {0: 1, 1: 2, 2: 3, 3: 4}
# {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E'}
4.4 循环列表时获取元素的索引 enumerate
letters = ['a', 'b', 'c']
for num,letter in enumerate(letters):
print(letter, 'is', num + 1)
# a is 1
# b is 2
# c is 3