1.请用代码验证 "alex" 是否在字典的值中?
info = {'name':'王刚蛋','hobby':'铁锤','age':'18',...100个键值对}

info = {'name':'王刚蛋','hobby':'铁锤','age':'123alex1123'}  #假设有一百个键值对
flag = False
for i in info.values():
    if "alex" in i:
        flag = True
if flag:
    print("alex是在字典的值中")
else:
    print("alex不在字典的值中")

2.有如下
v1 = {'郭宝元','李杰','太白','梦鸽'}
v2 = {'李杰','景女神}
请得到 v1 和 v2 的交集并输出

print(v1 & v2)

请得到 v1 和 v2 的并集并输出

print(v1 | v2)

请得到 v1 和 v2 的 差集并输出

print(v1 - v2)

请得到 v2 和 v1 的 差集并输出

print(v2 - v1)

3.循环提示用户输入,并将输入内容追加到列表中(如果输入N或n则停止循环)

lst = []
while 1:
    inp = input("请输入内容:")
    if inp.upper() == "N":
        break
    else:
        lst.append(inp)
print(lst)

4.写代码实现
v1 = {'alex','武sir','黑哥'}
v2 = []

循环提示用户输入,如果输入值在v1中存在,则追加到v2中,如果v1中不存在,则添加到v1中。(如果输入N或n则停止循环)

v1 = {'alex','武sir','黑哥'}
v2 = []
while 1:
    inp = input("请输入内容:")
    if inp.upper() != "N":
        if inp in v1:
            v2.append(inp)
        else:
            v1.add(inp)
    else:
        break
print("v1:",v1)
print("v2",v2)

5.判断以下值那个能做字典的key ?那个能做集合的元素?
1

可以作字典的key
可以作集合的元素

-1

可以作字典的key
可以作集合的元素

""

可以作字典的key
可以作集合的元素

None

可以作字典的key
可以作集合的元素

[1,2]

不可以作字典的key
不可以作集合的元素

(1,)

可以作字典的key
可以作集合的元素

{11,22,33,4}

不可以作字典的key
不可以作集合的元素

{'name':'wupeiq','age':18}

不可以作字典的key
不可以作集合的元素

6.is 和 == 的区别?

== 判断等号两边值是否相等
is 判断两边的值内存地址是否相等

7.type使用方式及作用?

使用方式:type(被测的数据类型)
作用:判断被测的数据类型是什么数据类型

8.id的使用方式及作用?

使用方式:id(被测的数据)
作用:写出被测的数据的内存地址

9.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = {'k1':'v1','k2':[1,2,3]}

result1 = v1 == v2
result2 = v1 is v2
print(result1)
print(result2)

True
False
原因:
v1 和 v2不是指向同一个内存地址
在小数据池中只有整数,字符串,布尔值这三个数据类型符合缓存机制,而字典不符合.

10.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1

result1 = v1 == v2
result2 = v1 is v2
print(result1)
print(result2)

True
True
原因:
因为v1和v2是指向同一个内存地址

11.看代码写结果并解释原因
v1 = {'k1':'v1','k2':[1,2,3]}
v2 = v1

v1['k1'] = 'wupeiqi'
print(v2)

{'k1': 'wupeiqi','k2':[1,2,3]}
原因:
因为v1和v2是指向同一个内存地址,是同一个

12.看代码写结果并解释原因
v1 = '人生苦短,我用Python'
v2 = [1,2,3,4,v1]
v1 = "人生苦短,用毛线Python"
print(v2)

 [1,2,3,4,'人生苦短,我用Python']
 原因:
 v1 指向了另一块内存地址,但v2指向的 '人生苦短,我用Python'没有变

13.看代码写结果并解释原因
info = [1,2,3]
userinfo = {'account':info, 'num':info, 'money':info}

info.append(9)
print(userinfo)

info = "题怎么这么多"
print(userinfo)

{'account':[1,2,3,9], 'num':[1,2,3,9], 'money':[1,2,3,9]}
{'account':[1,2,3,9], 'num':[1,2,3,9], 'money':[1,2,3,9]}

原因:
第一个输出  因为开辟空间后,info在第二层内存地址进行了修改,所以userinfo也发生了改变
第二个输出  因为info指向了另一个内存地址,但userinfo没有发生改变

14.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]

info[0] = '不仅多,还特么难呢'
print(info,userinfo)

['不仅多,还特么难呢',2,3][['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3],['不仅多,还特么难呢',2,3]]

原因:
因为info[0]发生了改变,所以info为['不仅多,还特么难呢',2,3]
因为info[0]是第二层可变数据,修改后,源数据也会发生改变

15.看代码写结果并解释原因
info = [1,2,3]
userinfo = [info,info,info,info,info]
userinfo [2] [0] = '闭嘴'
print(info,userinfo)

[ '闭嘴',2,3][[ '闭嘴',2,3],[ '闭嘴',2,3],[ '闭嘴',2,3],[ '闭嘴',2,3],[ '闭嘴',2,3]]
原因:
因为userinfo [2] [0] 发生了改变,所以info[0]为"闭嘴"
因为userinfo [2] [0] 是第二层可变数据,修改后,源数据也会发生改变

16.看代码写结果并解释原因
info = [1,2,3]
user_list = []
for item in range(10):
user_list.append(info)

info[1] = "是谁说Python好学的?"

print(user_list)

[[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3],[1,"是谁说Python好学的?",3]]

原因:
因为for循环10次,所以有九个列表
因为info是可变数据类型,又因为在第二层内存地址,所以info发生改变

17.看代码写结果并解释原因
data = {}
for i in range(10):
data['user'] = i
print(data)

{"user":9}

原因:
for循环前9次都被覆盖,最后"user"的值是9

18.看代码写结果并解释原因
data_list = []
data = {}
for i in range(10):
data['user'] = i
data_list.append(data)
print(data)

{"user":9}

原因:
for循环前9次都被覆盖,最后"user"的值是9

19.看代码写结果并解释原因
data_list = []
for i in range(10):
data = {}
data['user'] = i
data_list.append(data)
print(data_list)

[{'user':1},{'user':2},{'user':3},{'user':4},{'user':5},{'user':6},{'user':7},{'user':8},{'user':0}]

原因:
for循环的每一次循环都往date字典中加入一个键值对,然后追加到date_list里,但每次循环date被重新赋值成{},所以追加九次,且字典的值为0~9

20.使用循环打印出一下效果:

*
**
***
****
*****
****
***
**
*
*
***
*****
*******
*********
for i in range(1,6):
    print("*" * i)
for i in range(4,0,-1):
    print("*" * i)
for i in range(1,10,2):
    print("*" * i)

21.敲七游戏. 从1开始数数. 遇到7或者7的倍数(不包含17,27,这种数)要在桌上敲⼀下. 编程来完成敲七. 给出⼀个任意的数字n. 从1开始数. 数到n结束. 把每个数字都放在列表中, 在数的过程中出现7或者7的倍数(不包含17,27,这种数).则向列表中添加⼀个'咣'
例如, 输⼊10. lst = [1, 2, 3, 4, 5, 6, '咣', 8, 9, 10]

lst = []
inp = input("请输入一个整数:")
if inp.isdecimal() and int(inp) > 0:
    for i in range(1,int(inp) + 1):
        if i % 7 != 0:
            lst.append(i)
        else:
            lst.append("咣")
    print(lst)
else:
    print("输入错误!")

百万年薪python之路 -- 小数据池和代码块练习的更多相关文章

  1. 百万年薪python之路 -- 小数据池和代码块

    1.小数据池和代码块 # 小数据池 -- 缓存机制(驻留机制) # == 判断两边内容是否相等 # a = 10 # b = 10 # print(a == b) # is 是 # a = 10 # ...

  2. python基础之小数据池、代码块、编码和字节之间换算

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  3. python基础之小数据池、代码块、编码

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  4. Python小数据池,代码块

    今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. ...

  5. python 小数据池,代码块, is == 深入剖析

    python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...

  6. Python 小数据池和代码块缓存机制

    前言 本文除"总结"外,其余均为认识过程:3.7.5: 总结: 如果在同一代码块下,则采用同一代码块下的缓存机制: 如果是不同代码块,则采用小数据池的驻留机制: 需要注意的是,交互 ...

  7. python之路--小数据池,再谈编码,is和 == 的区别

    一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...

  8. python小数据池,代码块知识

    一.什么是代码块? 根据官网提示我们可以获知: A Python program is constructed from code blocks. A block is a piece of Pyth ...

  9. python小数据池,代码块的最详细、深入剖析

    代码块: Python程序是由代码块构造的.块是 一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是 ...

随机推荐

  1. Windows(Win7)搭建RabbitMQ服务器

    首先安装Erlang环境,RabbitMQ的运行依赖于Erlang.可以在官网链接http://www.erlang.org/downloads 页面找到对应的开发环境安装包.例如64位Windows ...

  2. Python学习-字符编码, 数据类型

    本篇主要内容: 字符编码 Python中的数据类型有哪些 类型的一些常用操作及方法 一.字符编码 编码解释的大部分内容摘自廖雪峰老师教程中的讲解,点击跳转. 简单介绍: 我们知道计算机只能处理数字,如 ...

  3. python2.x和python3.x版本共存时选择启动的版本

    在windows环境下装好python2.7和python3.6之后,我之前一直是用了很笨的办法去区分版本 那就是把各个版本python安装目录下的python.exe分别改为python2.exe和 ...

  4. 从二叉查找树到B+树中间的各种树

    高强度训练第十八天总结: 二叉查找树: 二叉查找树就是左结点小于根节点,右结点大于根节点的一种排序树,也叫二叉搜索树.也叫BST,英文Binary Sort Tree. 就长下面这吊样 查找步骤 在二 ...

  5. windows安装Mycat并测试

    1.下载系统安装包 选择相应的版本进行下载,地址:http://dl.mycat.io/ .Mycat数据库分库分表中间件介绍 http://www.mycat.io/ 2.安装 安装mycat前需要 ...

  6. JS 取整、取余

    一.取整 1. 取整 // 丢弃小数部分,保留整数部分 parseInt(7/2) // 3 2. 向上取整 // 向上取整,有小数就整数部分加1 Math.ceil(7/2) // 4 3. 向下取 ...

  7. 【钢琴伴奏基本形态和伴奏织体】技能 get

    开头重复一句话:做编曲就是设计和声+伴奏织体. ---- --------- --------------- 分解和弦: 半分解和弦: 做法:在旋律的下方演奏一些和弦的音.就能让音乐更加的饱满,拒绝空 ...

  8. POJ 2533——Longest Ordered Subsequence(DP)

    链接:http://poj.org/problem?id=2533 题解 #include<iostream> using namespace std; ]; //存放数列 ]; //b[ ...

  9. java架构之路-(spring源码篇)springIOC容器源码解析(上)

    我们这次来叭叭一下Spring的源码,这次博客主要来说说Spring源码,先粗略的撸一遍,下篇博客选几个重点去说,由于过于复杂,我也是看了一点点,我们先来过一遍源码,然后上流程图,最后我们再回头总结一 ...

  10. Java基础学习笔记(四) - 认识final关键字、权限修饰符和内部类

    一.final关键字 为什么要使用 final 关键字? 通过继承我们知道,子类可以重写父类的成员变量和方法.final 关键字可以用于修饰父类,父类成员变量和方法,使其内容不可以被更改. 1.被修饰 ...