Python基础 day2(2)

2024-07-24 22:31:27 浏览数 (1)

使用list和tuple

列表

代码语言:python代码运行次数:0复制
classmates = ['Michael', 'Bob', 'Tracy']
#列表元素个数
len(classmates)
#列表的索引
classmates[0]

#列表的追加和删除末尾
classmates.append('Adam')
classmates.insert(1, 'Jack') #指定插入
classmates.pop()
classmates.pop(1) #删除位置1

#列表的元素替换
classmates[1] = 'Sarah'

元组

但是tuple一旦初始化就不能修改

代码语言:python代码运行次数:0复制
classmates = ('Michael', 'Bob', 'Tracy')

#只有一个元素要这么定义消除数字歧义
t = (1,)

条件判断

注意冒号和缩进

代码语言:python代码运行次数:0复制
age = 20
if age >= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')


#简写
if x:
    print('True') 
#只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

input输入的返回数据类型是字符串,不能和整数进行条件判断,需要借助int()

match语句的模式匹配

if判断有时比较麻烦,可以利用match语句;case _表示“任意值”;case非常灵活

代码语言:python代码运行次数:0复制
score = 'B'

match score:
    case 'A':
        print('score is A.')
    case 'B':
        print('score is B.')
    case 'C':
        print('score is C.')
    case _: # _表示匹配到其他任何情况
        print('score is ???.')

#复杂匹配
age = 15

match age:
    case x if x < 10:
        print(f'< 10 years old: {x}')
    case 10:
        print('10 years old.')
    case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:
        print('11~18 years old.')
    case 19:
        print('19 years old.')
    case _:
        print('not sure.')


#匹配列表
args = ['gcc', 'hello.c', 'world.c']
# args = ['clean']
# args = ['gcc']

match args:
    # 如果仅出现gcc,报错:
    case ['gcc']:
        print('gcc: missing source file(s).')
    # 出现gcc,且至少指定了一个文件:
    case ['gcc', file1, *files]:
        print('gcc compile: '   file1   ', '   ', '.join(files))
    # 仅出现clean:
    case ['clean']:
        print('clean')
    case _:
        print('invalid command.')

循环

for...in循环

代码语言:python代码运行次数:0复制
sum = 0
for x in range(101): #range(i)成的序列是从0开始小于i的整数
    sum = sum   x
print(sum)

while循环

代码语言:python代码运行次数:0复制
#计算100内奇数之和
sum = 0
n = 99
while n > 0:
    sum = sum   n
    n = n - 2
print(sum)

break语句和continue语句配合if语句

代码语言:python代码运行次数:0复制
#计算100内奇数之和
n = 1
while n <= 100:
    if n > 10: # 当n = 11时,条件满足,执行break语句
        break # break语句会结束当前循环
    print(n)
    n = n   1
print('END')


#只打印奇数,这里跳过了偶数
n = 0
while n < 10:
    n = n   1
    if n % 2 == 0: # 如果n是偶数,执行continue语句
        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
    print(n)

大多数循环并不需要用到break和continue语句

使用dict和set

字典

代码语言:python代码运行次数:0复制
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Michael'] #查询键-值(key-value)

# 如果不存在则会返回None,不会显示在交互界面
d.get('Thomas') 
#指定和删除value
d.get('Thomas', -1)
d.pop('Bob')

dict的key必须是不可变对象,所以字符串、整数等都是不可变的,可以放心地作为key。而list是可变的,就不能作为key

set

一组key的集合,但不存储value,没有重复的key,同样不可以放入可变对象

set可以看成数学意义上的无序和无重复元素的集合

代码语言:python代码运行次数:0复制
s = {1, 2, 3}
#重复元素在set中自动被过滤
s = {1, 1, 2, 2, 3, 3}

s.add(4) #add(key),添加元素到set中
s.remove(4) #remove(key)方法可以删除元素
s1 & s2 #交集
s1 | s2 #并集

注意字符的不可变对象性质:

0 人点赞