python-容器、循环

python-容器、循环

一,pass

例:
a = int(input("请输入年龄:"))
if 20 > a > 18:
    print("成年了")
elif a >= 20:
    pass
else:
    print("111")

二,元组

1,元组结构

(元素1,元素2,元素3…)

元组的元素数据类型可以不同,但元组的元素不能更改。

tuple_1 = ("hello",1,2,-20,9,8,[4,5,6])
print(type(tuple_1))

2,元组切片

tuple_1 = ("hello",1,2,-20,9,8,[4,5,6])
print(tuple_1[1:4])

tuple_1[-1][0] = "nanhangjingcheng"
print(tuple_1)    //元组里边的列表的元素可以更改
len()   
max()   元组中的最大值
min()   元组中的最小值

3,元组的注意事项

(1)元组的几种表达

t = (1,2,3)
print(type(t))
t1 = 1,2,3
print(type(t1))
t2 = (2)
print(type(t2))
t3 = (2,)
print(type(t3))
t4 = tuple()   # 声明一个空白元组,也可以强制转换

(2)只有一个元素时,元素后面一定要带逗号(,)

三,集合

1,集合的特点:集合是无序的,且集合中的元素是唯一的---->可以去重

2,集合的结构:{元素1,元素2,元素3…}

3,集合的声明方式

(1)set()

set_01 = set("12345")
print(set_01)
set_02 = set([1,2,3,4,5])
print(set_02)

set_03 = set((10,20,30,111))
print(set_03)


d = {
    "姓名":"zhangsan",
    "年龄":18
}
set_04 = set(d)
print(set_04)

(2){ } 元素的数据类型只能是数字、元组、字符串

set_05 = {(1,2,3,4),5,6}
print(set_05)

4,集合的方法

(1)添加元素

add() 向集合中添加元素,且元素只能是数字、字符串、元组

set_01 = {1,2,3,"nanhang"}
set_01.add("jincheng")
print(set_01)

update() 将集合合并,也会去重,且集合的元素的排列是随机排列的

set_01 = {1,2,3,"nanhang"}
set_02 = {4,5,6}
set_01.update(set_02)
print(set_01)
print(set_02)

(2)删除元素

remove() 如果想要删除的元素不存在,则会报错

set_01.remove(4)
print(set_01)

pop()

set_01.pop(1)
print(set_01)

discard() 删除指定元素,如果元素不存在,不做任何操作

set_01.discard("jincheng")
print(set_01)
set_01.discard("jincheng")

(3)交集和并集

# & -->交集
print(set_01 & set_02)
# | -->并集
print(set_01 | set_02)

四,字典

1,特点:以键值对的形式存在,且关键字不可变,不能重复,键可以为任意不可变数据(元组、数字、字符串)

2,创建字典

(1){ }

dict_01 = {
    "uname":"zs",
    "age":18,
    (1,2,3):"zs",
    1:18
}
print(type(dict_01))

(2)dict函数

dict_02 = dict((["uname","zs"],["age",18]))    # 不推荐
print(type(dict_02))
print(dict_02)

(3)创建空字典

dict_03 = {}   # 只写一个大括号,默认创建出来的是空字典
print(type(dict_03))

3,字典的增删改查

dict_01 = {
    "姓名":"张三",
    "年龄":18
}

(1)增

dict_01["技能"] = "python"      # 给字典增加技能为python这一键值对
print(dict_01)

(2)删

del dict_01["姓名"]       # 删除字典中姓名这一键
print(dict_01)

(3)改

dict_01["技能"] = "安全渗透"    # 将上面的python技能更改为安全渗透技能
print(dict_01)

(4)查

字典名[键名]

4,get函数

用于在字典中获取指定键的值,可以设置默认返回值,在找的键不存在时,会将默认值返回出来

print(dict_01.get("技能"))
print(dict_01.get("姓名"))  # 返回None
print(dict_01.get("姓名","nanhang"))  # 当键不存在时,可以指定返回值

5,字典的方法

(1)key() : 以列表的形式返回字典中所有的键

dict_01 = {
    "uname","zhangsan",
    "age",21
}
print(dict_01.keys())

(2)items()

print(dict_01.items())

(3)values() :以列表的形式返回字典中所有的值

print(dict_01.values())

(4)clear() :做字典清空

(5)copy() :拷贝副本

(6)fromkeys() :用来创建一个新字典的,第一个参数用于作为字典的键,第二个参数用于作为字典的值

d1 = dict_01.fromkeys(("姓名","年龄"),("zhangsan",21))

(7)pop()

(8)popitem() :删除最后一项,并以元组的形式将删除的键值对返回

d3 = dict_01.popitem()
print(d3)
print(dict_01)

(9)update()

(10)in not in

五,循环

1,循环:周而复始,谓之循环;循环体的代码尽量不要重复

2,while循环

(1)格式:

while 表达式:        (只要表达式的结果是一个布尔值(1或0)即可)
         循环体
         
eg:
index = 1          # 索引定义
while index <= 100:        # 索引判断
    print("hello word")    # 循环体
    index += 1

循环:通过条件的不断变化,从而确定循环体是否继续执行

(2)死循环:非0即为真

while True:     # True也可以是2、3、4.......
        循环体

(3)break 立即结束循环

eg:# 输出0--100
index = 0
while index <= 100:
    if index == 50:
        break
    print(index)
    index += 1
# 在python中,break中断循环

(4)continue 中止本次循环,提前开始下一次循环(解决方法:可将index += 1变值语句提前至判断语句前)

index = 0
while index <= 100:
    index += 1
    if index == 50:
        continue
    print(index)
print("执行结束")

(5)while…else…循环结构

结构:
while condition:
    代码
else:
    代码
    
eg:
# 循环的程序正常结束,才会执行else里面的代码,只针对break
index = 1
while index < 100:
    print(index)
    index += 1
else:
    print("执行结束")

(6)循环嵌套

i = 1
while i <= 7:
    print(f"今天是第{i}天")
    j = 1
    while j <= 10:
        print(f"送的第{j}朵花")
        if j ==2:
            break
        j += 1
    i += 1
# break 只结束距离自己最近的一层的循环

3,for循环

(1)结构

for 临时变量 in 容器:
    代码块
    
# 迭代容器中的每一个元素
eg:
list = [1,2,3,4]
i = 0
while i < len(list):
    print(list[i])
    i += 1

set_01 = {1,2,3,"nanhangjingcheng"}

for i in list:
    print(i)
    
for i in set_01:
     print(i)

(2)for 既能遍历有序的容器,也能遍历无序的

(3)不止能迭代容器,还可以完成普通循环 -->99乘法表

(4)range(): 生成一系列连续的整数

结构:
range(start,end,step)
range(num):[0,num)     # 运行取值是左闭右开的取值

eg:
# for i in range(9):
#     print(i)

# for i in range(10,21):
#      print(i)

# for i in range(0,101,2):
#     print(i)

# for i in range(100,0,-2):
#     print(i)

练习

1,用for循环求0-100的和

s = 0
for i in range(0,101):
    s += i
print("0-100的和",s)

在这里插入图片描述

2,打印侧直角三角形

layer = int(input("请输入打印的层数:"))
for i in range(1,layer+1):
    space_nums = layer - i   # 打印空格
    for j in range(space_nums):
        print(" ",end="")
    for j in range(i):   # 打印*
        print("*",end="")
    print()

在这里插入图片描述

3,用while循环实现1-100的和的计算

index = 1
sum = 0
while index <= 100:
    sum += index
    index += 1
print("1-100的和为:",sum)

在这里插入图片描述

4,打印直角三角形

n = 1
m = int(input("请输入要打印的层数:"))
while n <= m:
    j = 1
    while j <= n:
        print("*",end="")
        j += 1
    print()
    n += 1

在这里插入图片描述

作业

1,用循环嵌套打印九九乘法表

i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(f"{j}*{i}={i*j}\t",end="")
        j += 1
    print()
    i += 1

在这里插入图片描述

2,用for循环打印99乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={i*j}\t",end="")
    print()

在这里插入图片描述

3,猜数字

import random
random = random.randint(1,100)      # 获取数字
flag = True
while flag:
    n = int(input("请猜一猜数字吧:"))
    if n == random:
        print("猜对了")
        flag = False
    elif n > random:
        print("不对哦,猜大了")
    else:
        print("不对哦,猜小了")
print(random)

在这里插入图片描述

4,打印三角形

n = 1
m = int(input("请输入要打印的层数:"))
for i in range(m):
    print("*" * n)
    n += 2

在这里插入图片描述

n = int(input("请输入打印的层数:"))
for i in range(1,n+1):
    m = n - i   # 打印空格
    for j in range(m):
        print(" ",end="")
    for j in range(i):   # 打印*
        print("*",end="")
    for k in range(i-1):
        print("*",end="")
    print()

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值