程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Python day05 课堂笔记

发布于2019-09-09 13:47     阅读(1192)     评论(0)     点赞(22)     收藏(2)


昨日作业讲解:

"""
1.有如下变量( tu 是个元祖 ),请实现要求的功能
tu = {"alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44]}
a.讲述元祖的特性
b.请问tu变量中的第一个元素"alex"是否可被修改?
c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"
d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"

2.字典dic , dic = {'k1':'v1',"k2":"v2","k3":[11,22,33]}
a.请循环输出所有的key
b.请循环输出所有的value
c.请循环输出所有的key 和 value
d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
e.请在修改字典中"k1"对应的值为"alex",输出修改后的字典
f.请在k3对应的值中追加一个元素44,输出修改后的字典
g.请在k3对应的值的第一个位置插入个元素18,输出修改后的字典

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

4.输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机","电脑","鼠标垫",'游艇']
要求:
1:页面显示 序号 + 商品名称 ,如:
1.手机
2.电脑
...
2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入
4:用户输入Q或者q,退出程序


"""

#1.
tu = ("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
# a.讲述元祖的特性
"""
元祖被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片仍适用于元祖
元祖的儿子不能被修改,孙子可以改
"""
# b.请问tu变量中的第一个元素"alex"是否可被修改?

#tu变量中的第一个元素不可以被修改。因为他是元祖,它的儿子一定是不能被修改的。

# c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"

# k2对应的是列表类型,列表是可以被修改的

tu[1][2]['k2'].append("Seven")
print(tu)

# d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"
# k2对应的是元祖类型,元祖是不可以被修改的



2.
字典dic , dic = {'k1':'v1',"k2":"v2","k3":[11,22,33]}

dic = {'k1':'v1',"k2":"v2","k3":[11,22,33]}
# a.请循环输出所有的key
for i in dic.keys():
print(i)
# b.请循环输出所有的value
print('________________')
for i in dic.values():
print(i)
# c.请循环输出所有的key 和 value
print('________________')
for i in dic.items():
print(i)
# d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
print('________________')
dic['k4'] = 'k4'
print(dic)
# e.请在修改字典中"k1"对应的值为"alex",输出修改后的字典
print('________________')
dic["k1"] = 'alex'
print(dic)
# f.请在k3对应的值中追加一个元素44,输出修改后的字典
print('________________')

dic["k3"].append(44)
print(dic)
# g.请在k3对应的值的第一个位置插入个元素18,输出修改后的字典
print('________________')
dic["k3"].insert(0,18)
print(dic)


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

dicl = {'k1':[] ,'k2':[]}
li = [11,22,33,44,55,66,77,88,99,90]
for i in li:
if i > 66 :
dicl['k1'].append(i)
elif i < 66:
dicl['k2'].append(i)
print(dicl)

4.
输出商品列表,用户输入序号,显示用户选中的商品
商品
li = ["手机", "电脑", "鼠标垫", '游艇']

要求:
1:页面显示
序号 + 商品名称 ,如:
1.
手机
2.
电脑
...
2: 用户输入选择的商品序号,然后打印商品名称
store = input('please input the store list : ')
print(li[int(store) -1])
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入
4:用户输入Q或者q, 退出程序

li = ["手机", "电脑", "鼠标垫", '游艇']
for i in li:
print('{}.\t\n{}'.format(li.index(i) + 1, i))

while 1:
store = input('please input the store list : ')
if (store.upper() == 'Q'):
break
if int(store) < 1 or int(store) > 4:
print('输出有误,请重新输入')
continue
else:
print(li[int(store) - 1])


小知识点总结
python 2 和 python3

python2 :
1.print可以加括号,也可以不加括号,而python3必须加括号
2.range() 和 xrange() 生成器 , 而python3 只有range()
3.raw_input() 相当于python3中的input()


= : 赋值
== :比较值是否相等
is :比较的是内存地址 -> id(内容)

数字和字符串: -> 小数据池 (只有数字和字符串才有小数据池)
小数据池:
数字范围: -5 ~ 256
字符串范围:
1.不能含有特殊字符
2.s * 20 还是同一个地址, s * 21 就是两个地址

#eg.

# li1 = [1,2,3]
# li2 = li1
# print(id(li1))
# print(id(li2))
# print(li2 is li1) # is 产生的值是布尔类型


编码:
ASCII码:
A:00000010 8位 ,1个字节

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

utf-8:
A:0010 0000 8位 1个字节
中:00000001 00000010 00000110 24位 三个字节

gbk:
A:00000110 8位 一个字节
中:00000000 00000111 16位,两个字节

注意:
1.各个编码之间的二进制,是不能互相识别的,会产生乱码
2.文件的储存,传输,不能是unicode(只能是utf-8 ,utf-16,gbk.gb2312,ascii......)


python3X:
str 在内存中是使用unicode编码 (导致文件的传输不能直接进行)
bytes类型 ;也是一种数据类型。编码是以utf-8编码的 (在传输 str 的时候,需要将他转化成 bytes 在进行)
对于英文:
str :表现形式:s = 'alex'
编码方式:01010011 unicode
bytes:表现形式:s = b'alex'
编码方式:01010011 utf-8 ,jbk
对于英文:
str :表现形式:s = '中国'
编码方式:01010011 unicode
bytes:表现形式:s = b'x\e91\e91\e01\e21\e31\e32' ->(三个字节表示一个中文)
编码方式:01010011 utf-8 ,jbk

encode() : 编码,如何将str -> bytes ()里面可以设置编码方式
传输和存储必须是bytes类型
 
 


所属网站分类: 技术文章 > 博客

作者:3434erer

链接:https://www.pythonheidong.com/blog/article/104289/8a1cf60b4769d6e82a56/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)