2.python基础-控制流语句

list

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可

'''
数组:list,
元组:元素不可变(tuple 的每个元素,指向永远不变)
       任意无符号的对象,以逗号隔开,默认为元组
'''
tp1=(1,2,['a','b'])
print(id(tp1[2]))
tp1[2].append("c")
print(id(tp1[2]))
a=1;b=2
def test(a,b):
    return a,b
print(type(test(a,b)))

'''打印结果:
57296336
57296336
<class 'tuple'>
'''
字典

花括号{}表示这是一个dict,用于类似给定一个名字,就可以直接查找分数,d={}
由于dict也是集合,len()函数可以计算任何集合的大小

使用dict本身提供的get方法,当Key不存在时,返回None,print d.get()

dict的第一个特点是查找速度快,占用内存大,还会浪费很多内容

第二个特点是存储的key-value序对是没有顺序的,不能用dict存储有序的集合

第三个特点是作为key的元素必须不可变,不可变这个限制仅作用于Key,value是否可变无所谓

python的基本类型如字符串,整数,浮点数都是不可变的,都可以作为key。但是list是可变的,就不能作为key

由于dict是按Key查找的,所以,在一个dict中,key不能重复

通过d[key]获取value

'''
   字典:{}dictionary  
    以key-value(键 ,值)形式储存和取值,列表通过偏移取值
    如果有同样的key,后面的值会把前面的值覆盖
    key一定是不可变的 
'''
info = {"name": "faker", "age": 18}  #定义一个字典
print(type(info))
print(isinstance(info, dict))
print(info["name"])
print(info.get("name")) #字典取值
print(info.keys())  #获取字典的key
print(info.values()) #获取字典的值
print(info.items())   #用于字典的遍历取值
print(info.get((1,2)))
info["where"]='shanghai'  #字典增加一个key-value
print(info)
info.pop('age')  #删除字典中的元素
print((1, 2) in info.keys())  #通过in判断 key是否存在

'''打印结果:
<class 'dict'>
True
faker
faker
dict_keys(['name', 'age'])
dict_values(['faker', 18])
dict_items([('name', 'faker'), ('age', 18)])
None
{'name': 'faker', 'age': 18, 'where': 'shanghai'}
False
'''
字典和json

json:一种轻量级的数据交换格式,
一种规定了格式的字符串,""括起来的键值对
一种通用的信息传递规则
具体互相转换可看链接:
https://blog.csdn.net/weixin_42412744/article/details/105521094

集合(set)

set持有一系列元素,但是set的元素没有重复,而且无序
由于set存储的是无序集合,所以我们没法通过索引来访问

访问set中的某个元素实际上就是判断一个元素是否在set中,可以用in操作符判断,‘Bart’ in s (注意区分大小写)

set内部结构和dict很像,唯一区别是不存储value,因此判断一个元素是否在set中速度很快

set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set的

for循环在遍历set时,元素的顺序和list的顺序很可能是不同的,而且不同的机器上运行的结果也不同

更新set主要做2件事,一是把新的元素添加到set中,二是把已经的元素从set删除
添加元素时用s.add() 删除元素时用s.remove(),通常使用for if…else…

'''set和dict相似,也是一组key 的集合,但是不储存value'''

set1={"tom", "jack", "alis", "tom"}  # 这里演示的是去重功能
print(type(set1))
print(set1)

'''打印结果:
<class 'set'>
{'tom', 'jack', 'alis'}
''' 
条件判断 if else
'''if else
如果条件为真,执行action1,反正执行条件2
if Ture:
    action1
else:
    action2

'''

age = 18
if age >= 18:
    print("{}岁的你已经成年了".format(age))
    print("你可以参加考试")
else:
    print("你还没成年")

'''精确判断:需要用到多层的 if -else 循环
判断成绩的等级:
    95-100:不得了
    90-95:优秀
    80-90:良好
    60-80:刚刚好
    60以下:不及格
'''
grade=int(input("请输入你的成绩:"))  #假设用户输入的是0-100
print(type(grade))
if grade>=95:
     print("不得了")
else:
    if grade > 90:
        print("优秀")
    else:
        if grade > 80:
            print("良好")
        else:
            if grade > 60:
                print("刚刚好")
            else:
                print("不及格")
elif
'''elif'''

if grade>=95:
    print("不得了")
elif grade>=90:
    print("优秀")
elif grade>=80:
    print("良好")
elif grade>=60:
     print("刚刚好")
else:
    print("不及格")

循环

第一种:while: 只要条件为真,循环就会一直执行
第二种:for


'''循环'''

import  time
while 1:
    print("123")
    time.sleep(1)

n=1
while  n<=10:
    print(n,end='')
    if n==7:
        continue
    n = n + 1     #代码永远不会走到这里了

'''break:在循环中,break可以提前退出循环
continue:跳过当前的这次循环,直接开始下一次循环
'''

n= 0
while n<10:
    n=n+1
    if n%2==0:
        continue
    print(n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值