0基础学python day 6

一、昨日回顾

1.dict : dic = ['name' : 'alex']

增:dic['age'] = 21 存在就覆盖

dic.setdefault:() 没有就增加

删:pop() 按照key删除,有返回值

  clear

  del:dic['name']

  popitem()随机删除 返回是元祖

改:update

查:

dic.keya()

dic.values()

dic.items()

for k,v in dic.items():

print(k,v)

dic.get(key,None)

  # 作业:有如下值 li = [11,22,33,44,55,66,77,88,99,90] ,将所有大于 66 的值保存至字典的第一个 key 中,将小于 66 的值保存至第二个key中。即: {'k1':大于66的所有值列表,'k2':小于 66 的所有值列表}

li = [11,22,33,44,55,66,77,88,99,90]
dic = {}
l_greater = [] # 大于66的所有值列表
l_less = []    # 小于66的所有值列表
for i in li:
    if i == 66:continue
    if i > 66:
        l_greater.append(i)
    else:
        l_less.append(i)
dic.setdefault('k1',l_greater)
dic.setdefault('k2',l_less)
print(dic)

  

  购物车作业
# 输出商品列表,用户输入序号,显示用户选中的商品 # 商品 li = ['手机','电脑','鼠标垫','游艇'] # 要求:1、显示页面序号 + 商品名称,如: # 1 手机 # 2 电脑 # ... ... # 要求:2、用户选择的商品序号,然后打印商品名称 # 要求:3、如果用户输入商品序号有错误,提示输入有误,并重新输入 # 要求:4、用户输入 Q 或 q 退出程序 while 1: li = ['手机','电脑','鼠标垫','游艇'] for i in li: print('{}\t\t{}'.format(li.index(i)+1,i)) num_of_choice = input('请输入选择商品的序号(输入Q或q退出程序):') if num_of_choice.isdigit(): num_of_choice = int(num_of_choice) if num_of_choice > 0 and num_of_choice<= len(li): print(li[num_of_choice-1]) else:print ('请输入有效数字') elif num_of_choice.upper() == 'Q':break else:print('请输入数字')

 

二、小知识点总结;

1.python2 与 python3区别

python2:

print () print 'abc'

range()  xrange()

raw_input()

python3:

print('abc')

range()

input()

2. =     ==    is  id()

= 赋值

== 比较值是否相等

 #is 比较,比较的是内存地址
li1= [1,2,3]
li2=li1
print(id(li1),id(li2))  # 表示li1与li2用的是同一个列表

 

# 数字 字符串 小数据池
  #数字范围 -5 —— 256
  #字符串:1、不能含有特殊字符
  #        2、s*20还是同一个字母
l1 = 6
l2 = 6
print(id(l1),id(l2)) # 同一个列表
li1 = 300
li2 = 300
print(id(li1),id(li2))#不同列表 在窗口中
# 剩下的list dict tuple set 无小数据库   除了字符串和数字剩下的没有小数据库
l1 = [1,]
l2 = [1,]
print(l1 is l2)  #fales   元素没有小数据库  

ascii 

  A : 00000010   8位一个字节

unicode

  A : 00000000 00000001 00000010 00000100 32位 四个字节

  中 : 00000000 00000001 00000010 00000100 32位 四个字节

utf-8

  A : 0010 0000 8位一个字节

  A : 00000001 0000001000000110  24位  三个字节

gbk系列

  A : 00000110 8位  一个字节

  中 : 0000001000000110 16位  两个字节

  1、各个编码之间的二进制,是不能相互是别的,会产生乱码。

  2、文件的储存,传输不能是unicode (只能是utf-8、 gbk、 gb2312、 asciid等)

py3 :

  str 在内存中是用unicode编码。

    bytes类型

    对于英文:

      str : 表现形式 : s = 'alex'

        编码方式 : 010101010  unicode

      bytes : 表现形式 : s = b'alex'

          编码方式 : 000101010  utf-8  gbk

s = 'alex'
s1 = b'alex'
print(s,type(s))  # alex <class 'str'>
print(s1,type(s1))  #b'alex' <class 'bytes'>

    对于中文 : 

      str : 表现形式 : s = '中国'

        编码方式 : 010101010  unicode

      bytes : 表现形式 : s = b' \e91\e91\e01\e21\e31\e32'

          编码方式 : 000101010  utf-8  gbk

 

s1 = 'alex'
# encode 编码,如何将str-->bytes
sl1 = s1.encode('utf-8')
print(sl1)  # b'alex'


s2 = '中国'
s22 = s2.encode('utf-8')
print(s22)  #b'\xe4\xb8\xad\xe5\x9b\xbd' 每个汉字由三个字节表示
s33 = s2.encode('gbk')
print(s33)  # b'\xd6\xd0\xb9\xfa'  每个汉字由两个字节表示

  

 

 

      

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/mangoorangutan/p/11000389.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值