每周总结——week02(杂篇)
每周总结——week02(杂篇)
1、用户交互
用户交互就是人对计算机进行数据的输入,计算机给人输出结果。
输入:input()
输出:print()
'''
需求:
获取用户输入并打印成下列格式
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
'''
name = input('请输入您的名字:')
age = input('请输入您的年龄:')
sex = input('请输入您的性别:')
job = input('请输入您的职业:')
print('------------ info of Jason -----------')
print(' Name:', name)
print(' Age:', age)
print(' Sex:', sex)
print(' Job:', job)
print('---------------- end -----------------')
2、格式化输出
占位符格式化输出:
格式化输出就是提前定义好一些内容,将来需要使用的可以进行局部的修改。
实现的主要方法是通过占位符占位,然后通过%来实现。
占位符主要使用两种:
%s:可以替任何数据进行占位
%d:只能替整型数据进行占位
%08d:总共8位的整数占位符,不够8位的前面补0,够的有多少显示多少。
示例:
# 单个占位符
info_user = '亲爱的用户:%s,你好'
print(info_user % 'jason')
print(info_user %('jason',) )
print('亲爱的用户:%s,你好' %(‘Tony’,))
print('亲爱的用户:%s,你好' %‘Tony')
# 多个占位符
desc = '姓名:%s、年龄:%s、性别:%s'
print(desc % ('jason',18,'male'))
print('姓名:%s、年龄:%s、性别:%s'%('Tony',28,male))
'''
有几个占位符就要有几个数据
'''
format()方法格式化输出
# format() 可以等价于占位符
# 在字符串中可以使用{},来代替原来所需的%s,在字符串后.format()中,填入自己所需的字符串即可
str1 = 'My name is {},welcome my hurt my {}'.format('HaiMan', 'Baby')
print(str1)
# format()占位符取名要做到见名知意
str2 = '亲爱的用户{name},您好!您本月共消费了{money}元,' \
'巧的是,您上月也消费了{money}元,' \
'再一次恭喜用户{name},成为我们的VIP用户!'.format(name='tony', money='8888')
print(str2)
# format() 索引取值并支持反复使用
str3 = '亲爱的用户{0},您好!您本月共消费了{1}元,' \
'巧的是,您上月也消费了{1}元,' \
'再一次恭喜用户{0},成为我们的VIP用户!'.format('tony', '8888')
print(str3)
'''
format()重点用法,获取用户输入的数据,完成字符串的格式化输出
'''
name = input('name>>>>:')
age = input('age>>>>:')
info_our = f'小伙子{name},你今年{age}岁了!'
print(info_our)
3、垃圾回收机制
什么是垃圾回收机制
在一些语言中,内存空间的申请与释放都需要开发者自己编写相应的代码z才能够完成。而在Pyt,不需要我们特意去编写。
引用计数
'''
当我们定义了一个变量,这个变量就会在内存中开辟一个地址,这个内存地址的数据值就会产生一个计数器,有一个变量指向就有一次计数,计数器的数值就会增加1,当这个计数器的值为0时就会被垃圾回收机制当作垃圾回收。
'
标记清除
'''
工作原理:
当内存占用达到临界值时,程序就会自动停止运行,然后扫描程序中的所有数据,扫描出只产生循环引用的数据打上标记,随后一次性的进行清除。
分代回收
'''
年轻代、青年代、老年代,它们对应的是 3 个,活。
4、可变数据类型与不可变类型
不可变数据类型
'''
字符串在调用内置方法之后并不会修改自身而是产生了一个新的结果
'''
str1 = '$$dadada$$'
str2 = str1.strip('$')
print(str2)
可变数据类型
'''
列表在调用内置方法之后修改的就是自身并没有产生一个新的结果
'''
lst1 = [11, 22, 33]
lst1[0] = 88
print(lst1)
5、字符编码理论
1.字符编码只针对文本数据
2.回忆计算机内部存储数据的本质
3.既然计算机内部只认识01 为什么我们却可以敲出人类各式各样的字符
肯定存在一个数字跟字符的对应关系 存储该关系的地方称为>>>:字符编码本
4.字符编码发展史
4.1.一家独大
计算机是由美国人发明的 为了能够让计算机识别英文
需要发明一个数字跟英文字母的对应关系
ASCII码:记录了英文字母跟数字的对应关系
用8bit(1字节)来表示一个英文字符
4.2.群雄割据
中国人
GBK码:记录了英文、中文与数字的对应关系
用至少16bit(2字节)来表示一个中文字符
很多生僻字还需要使用更多的字节
英文还是用8bit(1字节)来表示
日本人
shift_JIS码:记录了英文、日文与数字的对应关系
韩国人
Euc_kr码:记录了英文、韩文与数字的对应关系
"""
每个国家的计算机使用的都是自己定制的编码本
不同国家的文本数据无法直接交互 会出现"乱码"
"""
4.3.天下一统
unicode万国码
兼容所有国家语言字符
起步就是两个字节来表示字符
utf系列:utf8 utf16 ...
专门用于优化unocide存储问题
英文还是采用一个字节 中文三个字节
6、字符编码实操
针对乱码不要慌 切换编码慢慢试即可
2.编码与解码
编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
字符串.encode()
解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
bytes类型数据.decode()
3.python2与python3差异
python2默认的编码是ASCII
1.文件头
# encoding:utf8
2.字符串前面加u
u'北国风光,千里冰封,万里雪飘'
python3默认的编码是utf系列(unicode)