List-Dict-Set-元祖-字符串-用户交互-if语句-while循环-break和continue

本文深入讲解Python中的List、Dict、Set、Tuple和字符串等数据结构的特性与操作方法,包括增删改查、循环控制、条件判断等核心知识点。

一 List

       lst = list()

       []列表,用来存放大数据集的数据
        [], 内部可以使用任何数据类型的数据. 由逗号隔开
        索引和切片与字符串一模一样

       list数据可以重复lst=["张三","李四","张三"]

       可以将list放到集合中,去重复s=set(lst)   print(s),列表变成集合,顺序是乱了。

       然后再将集合变成列表lst=list(s),顺序是乱了。

1 增加【】 追加方式

lst = []
lst.append("黄晓")
lst.append("万三")
lst.append("李明明")
lst.append("小芳")
print(lst)

2 查询 索引查询,切片查询

lst = ["张无忌", "张翠山", "张三丰", "张guol", "张long"]
print(lst)
print(lst[3])
print(lst[-4])
print(lst[1:4])

3 修改

lst[2] = "张娜拉"
print(lst)

4 删除

#方式1
lst.remove("张晓龙")
print(lst)

#方式2
lst.pop(1)
print(lst)

二 Dict

       {}存储时以key:value的形式来存储的数据.
        优势:查询的效率非常高
        {k:v, k:v,k:v}
        所有的key必须是可哈希. 不可变就是可哈希
        可变: 列表和字典
        不可变:str, int, float, tuple

        字典没有索引和切片

1 增加{}

d = {}
d['张无忌'] = "倚天屠龙记"
print(d) # {'张无忌': '倚天屠龙记'}

2 查询

print(d["name123123"]) # KeyError: 'name123123' 有详细报错
print(d.get("name123123"))  # None 返回空,没有报错

3 修改

d['张无忌'] = "赵敏"  # 修改
print(d)

4 删除

d = {"name": "赵四", "age":40}
d.pop("name")
print(d)

三 Set

       集合没有顺序.
       数据不重复.
        数据必须是可哈希的.
        s = set()

查询

s = {"赵四", "刘能", "大脚", "广坤"}
s2 = {"广坤", "皮长山", "李福", "大脚"}
print(s & s2)
print(s | s2)

列表转集合转列表

lst = ["广坤", "皮长山", "李福", "大脚", "赵四", "刘能", "大脚", "广坤"]
print(lst)

s = set(lst)
print(s)
lst = list(s)
print(lst)

四 元祖tuple

       
        ()表示元祖,只读列表
        如果元祖内只有一个元素,需要在末尾添加一个逗号

   (数据,)
t = (1, "哈哈", "呵呵")
print(t)
print(type(t))
print(t[1:3])

#坑1 不支持修改
t[1] = "张无忌"  # 'tuple' object does not support item assignment

# 坑2
# 如果元祖内只有一个元素,需要在末尾添加一个逗号
t = (1,)
print(type(t))

五 字符串

            索引: 为了快速的从数据集中获取到某一个数据
            字符: 单一的文字符号.
            在python中索引的下标从0开始.

             默认方向为往右取:跳着取, 步⻓ -2方向往左取,2方向往右取
 

#程序员的世界数数永远从0开始,倒序从1开始
#   0 1 2 34 5 6 7
#  -8-7-6-5-4-3-2-1
s2 = "python最⽜B"
print(s2[0:3]) # 从0获取到3. 不包含3. 结果: pyt
print(s2[6:8]) # 结果 最⽜
print(s2[6:9]) # 最⼤是8. 但根据顾头不顾腚, 想要取到8必须给9
print(s2[6:10]) # 如果右边已经过了最⼤值. 相当于获取到最后
print(s2[4:]) # 如果想获取到最后. 那么最后⼀个值可以不给.
print(s2[-1:-5]) # 从-1 获取到 -5 这样是获取不到任何结果的. 从-1向右数. 你怎么数也数不到-5
print(s2[-5:-1]) # ⽜b, 取到数据了. 但是. 顾头不顾腚. 怎么取最后⼀个呢?
print(s2[-5:]) # 什么都不写就是最后了
print(s2[:-1]) # 这个是取到倒数第⼀个
print(s2[:]) # 原样输出
s = "昨日赤裸不过度误入百花深处,正度正度"
print(s[5:10:3])  #过度误入百,每3个取1位,结果为过入
print(s[-4:-10:-2]) #结果为正处花,-2代表方向往左,每隔两位取。

 

六 用户交互

    s = input(提示语)
    收到的内容是字符串. 操作的时候需要注意

a=input("请输入第1个数:")
b=input("请输入第2个数:")
a=int(a)
b=int(b)
print(a+b)

#也可以这样写
a=int(input("请输入第1个数:"))
b=int(input("请输入第2个数:"))
print(a+b)

七 if语句

注意没有()

注意缩进,py有分层规范,print("计算完毕")

a = int(input("请输入a")) # 1
b = int(input("请输入b")) # 2

if a > b:
    print("a比b大")
    print("呵呵呵哒")
else:
    print("a比b小")
print("计算完毕")
score = int(input(">>>:"))
if score < 60:
    print("不及格")
elif score < 70:
    print("及格")
elif score < 80:
    print("中等")
elif score < 90:
    print("良好")
else:
    print("优秀")

八 while循环

打印1-100

count=1
while count <=100:
    print(count)
    count = count + 1

打印1-100所有的基数

count=1
while count <=100:
    if count % 2 ==1:
        print(count)
    count = count + 1

打印1加到100的结果

count=1
sum = 0
while count <=100:
    sum = sum + count
    count = count + 1     
print(sum)

打印1-2+3-4+5-6...-98+99-100

count=1
sum = 0
while count <=100:
    if count % 2 ==1:
        sum = sum + count
    else:
        sum = sum - count
    count = count + 1
print(sum)

打印 1-3+5-7+9...99 = ?

i = 1
fu = 1  # 符号
s = 0  # 准备累加
while i <= 99:
    s = s + i * fu
    fu = -fu
    i = i + 2
print(s)
# # i = 1  fu = 1   *  1
# # i = 3  fu = -1  *  -3
# # i = 5  fu = 1   *  5
# # i = 7  fu = -1  *  -7

九 break和continue 

break中断循环程序

continue 终止当前循环,进入下次循环,不会执行 print("发送给你的打野", content)

while True:
    content = input("请输入你要喷的内容(输入Q退出):")
    if content == 'Q':
        break  # 终止这个循环
        #continue #
    print("发送给你的打野", content)

print("游戏继续")

continue使用场景,取有用数据时。

while True:
    从数据库取数据
    if 是否为垃圾数据:  
        continue
    把数据进行进一步处理
    把数据发给前端

十 while else

当while条件不成立的时候,才会执行else。

当i==7的时候,break跳出循环,执行,print("数完了2"),不会执行else。

i = 1
while i <= 10:
    if i == 7:
        break
    print(i)  # 1 2 3 4 5 6
    i = i + 1
else: # 当上面那个条件不成立的时候会执行else
    print("数完了")
print("数完了2")

算法题

# 让用户输入一个数字n. 判断该数字是否是质数
# 质数: 只能被1和自身整除的数

n = int(input(">>>"))  # 7 / 6
a = 2
while a <= n-1:
    if n % a == 0:
        print("不是质数")
        break
    a = a + 1
else:
    print("是质数")

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值