python编码及初体验
1.编码 (密码本)
计算机中所有的数据本质上都是以0和1的组合来存储。
在计算机中会将中文内存转换为010110(机器码),最终存储到硬盘上。
计算机中有一个编码的概念(密码本)。
计算机中有很多编码,例如:utf-8,gbk
注意事项:以某个编码的形式进行保存文件,以后就要以这种编码去打开这个文件,否则会出现乱码。
2.编程初体验
-
编码必须要保持:保存和打开一致,否则会出现乱码
-
默认python解释器编码为utf-8的形式打开文件,如果想要修改python的默认解释器编码,实例:
# -*- coding:gbk -*-
-
建议:所有python代码文件都要以utf-8编码文件保存和读取
3输出
将结果或内容想要呈现给客户
print('hello')
- 默认print在尾部会加换行符
- 想要不换行,加end 实例
print('hello',end="")
注意:类型转换不是改变原来值,实际在底层是新创建了一个值。例如有整数 6 ,然后使用 str(6) 转化了一下得到 “6”,实际上这个字符串”6”是依据整数6新创建的。
4.初始数据类型
4.1整型
就是整数(不包含小数),在写代码时用于表示整数相关的东西,
整数支持 加/减/乘/除/取余/指数…操作
print(666)
4.2字符串(str)
字符串,相当于生活中的文本信息,例如:姓名,地址…
字符串必须用 引号 引起来
- 单行字符串
print('hello')
- 多行字符串
print("""hello""")
字符串操作
- 加,字符串相加,把内容通过加号拼接起来
print('你'+'好')
- 乘,整型与字符串相乘,实现字符串重复出现n次并拼接
print(3*'你好')
4.3布尔类型(bool)
布尔类型只有两个值:True/False
print(1>2) False
print(1==1) True
注意:整型与字符串可以比较相等,不可以比较大小
4.4类型转换
- int, 整型定义时,必须是数字且无引号,例如:1,2
- str,字符串定义时,必须用引号括起来,例如:‘中国’
- bool,布尔值定义时,只能写 True/False
不同的数据类型有不同的功能
例如:整型可以加减乘除等,字符串只能加(拼接)和乘法
类型转换基本原则:想转换什么类型就包起来
例如:整型-》字符串 str(666) ,字符串-》整型 int(‘666’)
转换整型:
# 字符串转换整型
int('666')
# 注:非数字类型的字符串不能转换为整型
# 布尔类型转换整型
int(True) 1
int(False) 0
转换为字符串
# 整型转换字符串
str(11) '11'
# 布尔类型转换字符串
str(True) 'True'
str(False) 'False'
转换布尔类型
# 整型转为布尔类型
bool(1) True
bool(0) False
字符串转布尔类型
bool('hello') True
bool('') False
bool(' ') True
类型转换准则
-
转换为布尔类型时,除了空字符串,0所有其他都是True
-
字符串转换为整型类型,只有数字类型的字符串才可以转换为整型,例如’11’,其他都不可以
-
想要转换为那种类型,就是用这类型的英文包裹一下就行
str() int() bool()
5.变量
变量,生活中起的别名和外号,让变量指向某个值:格式:[变量名=值],以后可以通过变量名来操作其对应值
age=18
print(age)
注意:
- 给变量赋值 age=18
- 让age代指值age=18
5.1变量名的规范
三个规范(有一个就报错):
- 变量名只能由字母,数字,下划线组成
- 不能以数字开头
- 不能用python内置关键字
and,as,assert,break,class,continue,def,elif,else,
except,exec,finally,for,from,global,if,import,in,is,
lambda,not,or,pass,print,raise,return,try,while,
with,yield
变量名命名建议
- 下划线连接命名
father_age=18
- 见名之意
age=18
5.2变量内存指向关系
内存指向(变量在内存中是怎么存储的)
情况一
name='wxy'
在计算机的内存中创建一块区域保存字符串’wxy’,name变量名则指向该区域
情况二
name='wxy'
name='gx'
在计算机的内存中创建一块区域保存字符串’wxy’,name变量名则指向该区域,然后又在内存中创建一块区域保存字符串’gx’,name变量名则指向’gx’所在的区域,不再指向’wxy’所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)
情况三
name='wxy'
new_name=name
在计算机的内存中创建一块区域保存字符串’wxy’,name变量名则指向该区域,new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域
情况四
name='wxy'
new_name=name
name='gx'
在计算机的内存中创建一块区域保存字符串’wxy’,name变量名则指向这块区域,然后new_name指向name所指向的内存区域,最后又创建了一块区域存放’gx’,让name变量指向’gx’所在区域
情况五
num=18
age=str(num)
在计算机的内存中创建一块区域保存整型18,num变量名则指向这块区域,通过类型转换依据整型18再在内存中创建一个字符串’18’,age变量指向保存这个字符串的内存区域
6.注释
写代码的时候,对某些内容进行注释处理,即:解释器忽略不会按照代码去执行
- 单行注释
# 这是单行注释
快捷键:mac:command+? ,windows:control+?
- 多行注释
"""
这是多行注释
"""
7.输入
输入,可以实现程序和用户之间的交互
name=input('请输入姓名:')
特别注意:输入的内容本质上都是字符串
8.条件语句
8.1基本条件语句
if 条件:
条件成立之后执行的代码...
else:
条件不成立之后执行的代码...
python代码格式(对缩进有严格要求):四个空格=tab
8.2多条件判断
if 条件1:
1成立,执行此缩进中的代码
elif 条件2:
2成立,执行此缩进中的代码
elif 条件3:
3成立,执行此缩进中的代码
else:
以上都不成立,执行此缩进中的代码
8.3条件嵌套
if 条件A:
if 条件A1:
...
else:
...
elif 条件B:
...