当我们在电脑上输入一段话,并保存到电脑中,在计算机中则会将中文内存转换为01010100100101...
这样的形式,最终存储到硬盘上。
在计算机中有这么一个编码的概念(密码本)。
王 -> 01010100101 010
敏 -> 010010110 10101
...
在计算机中有很多种编码
每种编码都有自己的一套密码本,都维护着自己的一套规则,如:
utf-8编码:
王 -> 101010001(乱写的)
桂 -> 110101010(乱写的)
gbk编码:
王 -> 010101010(乱写的)
桂 -> 010100010(乱写的)
所以,使用不同的编码保存文件时,硬盘的文件中存储的0/1也是不同的
注意事项
:以某个编码的形式进行保存文件,以后就要以这种编码去打开这个文件,否则就会出现乱码。
编码
必须要保持一致
:保存和打开一致,否则会出现乱码# -*- coding:utf-8 -*-
print("我是你二大爷")
Pycharm
中写完代码,如果不规范的话,可以点击上面的code
-> Reformat Code
, 则软件会帮你自动规范化代码int() str() bool()
三句话搞懂类型转换
空字符串,0 以外
,其他所有都为True。988
’格式(全为数字)的字符串才可以转换为整形,其他都报错类型的英文
包裹一下就行。sr(...)
int(...)
bool(...)
变量,其实就是我们生活中起的别名和外号,让变量名指向某个值,格式为:【变量名=值
】,以后可以通过变量名来操作其对应的值。
name = '王不易'
print(name) # 王不易
flag = 1>18 # 意思是将,右边的'1>18'返回的结果赋值给flag,所以flag=False
address = '浙江省'+'宁波市' # 意思是先将右边的字符串进行拼接,然后返回给address 所以address = '浙江省宁波市'
number = 1 == 2 # 先看右边再看左边。number = False
三个规范(只要有一条,就会报错)
字母、数字、下划线
组成。数字
为开头Python内置的关键词
作为变量名
三个建议
:
# 很长的变量名,中间用_连接
farther_name = 'wangbuyi'
class_name = '计算机2101'
# 让别人看见变量名就知道这是什么意思
age = 19
color = 'red'
name = 'wby'
# 顾名思义,就是变量名中首字母大写
# 在程序中,要么选择下划线连接命名,要么驼峰命名,建议不要一起使用,容易混乱
StudentName = 'wby'
StudentAge = 18
通过学习上述变量知识让我们对变量了有了初步认识,接下来我们就要从稍稍高级一些的角度来学习变量,即:内存指向(在电脑的内存中是怎么存储的)。
情景一
name = "wupeiqi"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。
情景二
name = "wupeiqi"
name = "alex"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。然后又再内存中创建了一块域保存字符串”alex”,name变量名则指向”alex”所在的区域,不再指向”wupeiqi”所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)
情景三
name = "wupeiqi"
new_name = name
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。
情景四
name = "wupeiqi"
new_name = name
name = "alex"
在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域(灰色线), 然后new_name指向name所指向的内存区域,最后又创建了一块区域存放”alex”,让name变量指向”alex”所在区域.
情景五
num = 18
age = str(num)
在计算机的内存中创建一块区域保存整型18,name变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串”18”, age变量指向保存这个字符串的内存区域。
至此,关于变量的内存相关的说明已讲完,由于大家都是初学者,关于变量的内存管理目前只需了解以上知识点即可,更多关于内存管理、垃圾回收、驻留机制等问题在后面的课程中会讲解。
谈谈你了解的编码以及为什么会出现乱码的现象?
答:当编码形式不一样的时候就会出现乱码的情况
编码相当于是一个`密码本`,其中存储着文字和01010的对应关系。
乱码的出现时因为文件的存储方式和打开方式不一致导致。另外,如何数据丢失也可能会造成乱码。
假如:
武,对应存储的是:100100001000000111。如果文件中的内容丢失只剩下100100001000000,则读取时候就可能出现乱码。
Python解释器默认编码是什么?如何修改?
# Python解释器默认编码是UTF-8
# -*- coding:gbk -*-
Python解释器默认编码:utf-8
在文件的顶部通过设置: # -*- coding:编码 -*- 实现修改。
用print打印出下面内容:
⽂能提笔安天下,
武能上⻢定乾坤.
⼼存谋略何⼈胜,
古今英雄唯是君。
text = """
⽂能提笔安天下,
武能上⻢定乾坤.
⼼存谋略何⼈胜,
古今英雄唯是君。
"""
print(text)
变量名的命名规范和建议?
答: 命名规范: 1. 不能以数字为开头;2. 只能是数字,字母,下划线组成;3. 不能以Python默认的关键字为变量名
建议: 1. 使用下划线来分割很长的变量名 2. 必须让人一眼就知道这个变量是什么意思
三条规范(必须遵循,否则定义变量会报错)
- 变量名只能由 字母、数字、下划线 组成。
- 变量名不能以数字开头。
- 变量名不能是Python内置关键字
二条建议(遵循可以显得更加专业,不遵循也可以正常运行不报错)
- 下划线命名法,多个单词表示的变量名用下划线连接(均小写)
- 见名知意,通过阅读变量名就能知道此变量的含义。
如下那个变量名是正确的?
name = '武沛齐'
_ = 'alex'
_9 = "老男孩"
9name = "宝浪"
oldboy(edu = 666
T T T F F
设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
n = input('请输入数字:')
if int(n) < 66:
print('猜小了')
elif int(n) > 66:
print('猜大了')
else:
print('猜对了')
提示⽤户输入 “爸爸” ,判断⽤户输入的对不对。如果对, 提示真聪明, 如果不对, 提示你是傻逼么。
n = input('请输入 "爸爸" :')
if n != '爸爸':
print('你是傻逼么?')
else:
print('真聪明')
写程序,成绩有ABCDE5个等级,与分数的对应关系如下.
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39
要求用户输入0-100的数字后,你能正确打印他的对应成绩等级.
score = input("请输入分数")
data = int(score)
if data >= 90 and data <= 100:
print("A")
elif data >= 80 and data <90:
print("B")
elif data >= 60 and data <80:
print("C")
elif data >= 40 and data <60:
print("D")
elif data >= 0 and data <40:
print("E")
else:
print("输入错误")
score = input("请输入分数")
data = int(score)
if 90 <= data <= 100:
print("A")
elif 80 <= data < 90:
print("B")
elif 60 <= data < 80:
print("C")
elif 40 <= data < 60:
print("D")
elif 0 <= data < 40:
print("E")
else:
print("输入错误")
n = input('请输入0-100的数字: ')
if int(n) >= 90:
print('A')
elif int(n) >= 80 and int(n) < 90:
print('B')
elif int(n) >= 60 and int(n) < 80:
print('C')
elif int(n) >= 40 and int(n) < 60:
print('D')
else:
print('E')