Python 基础学习笔记(三)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值