1、编码(可以理解为密码本,即:数据与0/1组合的对应关系)
计算机中所有的数据本质上都是以0和1的组合来存储
上述文件中的内容在计算机中会将中文转换成0和1的组合,最终存储到硬盘上。
在计算机中有这么一个编码的概念(编码类似于:密码本)
例如:齐这个汉字对应的0和1组合分别为:
齐 ->11111111 00000000 010101010
在计算机中有很多种编码。
每种编码都有自己的一套密码本,都维护着自己的一套规则,如:
utf-8编码:齐 ->11111111 00000000 010101010
GBK编码:
齐->00110011 10101010
所以,使用不同的编码保存文件时,硬盘的文件中存储的0和1的组合也是不同的。
注意事项:以某个编码的形式进行保存文件,以后就要以这种编码去打开这个文件,否则就会出现乱码。
例如:
以utf-8编码去保存:齐 11111111 00000000 010101010
以GBK的形式打开:会出现乱码现象
2、编程初体验(编码)
(1)编码必须要:保存.py文件和打开.py文件的编码方式要一致,否则会乱码。
(2)python解释器是以UTF-8的形式打开.py文件。
(3)pycharm的编码方式默认是UTF-8.
(4)建议:所有python代码文件都要以UTF-8编码保存和读取。
# -*- coding:gbk -*-
# 上述代码作用是:告诉python解释器以GBK的形式打开.py文件
print("haiha")
3、输出(print(...))
作用:将结果或内容呈现给用户。
在创建.py文件时,给文件命名一般用英文命名。
print("我爱她,轰轰烈烈")
结果:
关于输出:
(1)默认情况下,print默认会加换行符。
print("我爱她,轰轰烈烈")
print("我想你了")
结果:
(2)想要不换行,则可以这样干。
print("我爱她,轰轰烈烈",end="") #end='',双引号中的值表示前面的内容输出之后,后面紧跟着什么。
print("我想你了",end="")
结果:
练习题:
1、使用print输出:
春眠不觉晓,
处处闻啼鸟。
夜来风雨声,
花落知多少。
print("春眠不觉晓,")
print("处处闻啼鸟。")
print("夜来风雨声,")
print("花落知多少。")
2、使用print输出:
春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。
print("春眠不觉晓,",end="")
print("处处闻啼鸟。",end="")
print("夜来风雨声,",end="")
print("花落知多少。",end="")
4、数据类型的引入
4.1整型(int)
整型即:整数。
print(10)
print(20*2)# 乘法
print(20/3)
print(20%2)#求余数
print(2**4)#幂,2的4次方
print(2+10)#先计算2+10==12,然后再print(12)
结果:
4.2字符串(str)
字符串中的内容要用英文状态的单引号(' ')或英文状态下的双引号(" ")或英文状态下的三双引号或英文状态下的三单引号括起来。
双引号,单引号适用于:单行字符串
三双引号,三单引号适用于:多行字符串
4.2.1单引号,双引号
print("hello world")
print('hi, nice to meet you')
如果字符串中有双引号,则该字符串要用单引号括起来。
print('hello " nihao')
如果字符串中有单引号,则该字符串要用双引号括起来。
print(' hi " luci')
4.2.2三单引号,三双引号
print("""春眠不觉晓,
处处闻啼鸟。
夜来花语声,
花落知多少。
""")
结果:
print('''我自横刀向天笑,
有人不识君
''')
结果:
如果字符串中有三双引号,则字符串要用三单引号括起来
print('''我自横刀向天笑""",
有人不识君
''')
如果字符串中有三单引号,则字符串要用三双引号括起来
print("""
人生得意须尽欢''',
快哉
""")
4.2.3字符串支持的算术运算:加(+),乘(*)
加:两个字符串可以通过加号拼接起来
print("我喜欢你,"+"你喜欢我吗?")
结果:
乘:让整型和字符串进行想乘,以实现让字符串重复重现N次并拼接起来。
print(3*"我爱她,轰轰烈烈。")
结果:
4.3布尔类型(bool)
布尔类型共有两个值:True(代表:真)/False(代表:假),布尔类型一般用于判断.
print(1 > 2)
print(False)
print(1 == 1)
print(True)
结果:
补充:
(1)整型之间可以进行比较:
例如:1>3;1==2;1<2
(2)字符串之间可以用==比较是否相等
例如:“peter"=="tony"
(3)整型可以与字符串用==比较是否相等
例如:1=="tony"
(4)但整型与字符串之间是不能用>,<等符号进行比较
例如:1>"tony";不能进行比较,会报错
print(1>"peter")
结果:
4.4类型转换
上述数据类型int/str/bool有了初步了解,他们都有自己不同的定义方式
(1)int,整型定义时,必须是数字且无引号,例如:5,8,9
(2)str,字符串定义时,必须用引号括起来,例如:"中国",”66“
(3)bool,布尔定义时,只能写:True和False
不同的数据类型都有不同的功能,例如:整型可以加减乘除而字符串只能加(拼接)和乘法
如果想要做转换可遵循一个基本原则:想转换什么类型就让它包裹一下。
例如:str(666)是将整型转换为字符串:“666”;int("888")是将字符串转换为整型:888
(1)字符串转换为整型:
print(int('1255')) # int('1255')转换为整型:1255
print('6' + '9') # 字符串拼接
print(int('6') + int('9'))
结果:
(2)布尔类型转换为整型
print(int(True))
print(int(False))
结果:
(3)整型转换为字符串
print(str(345))#‘345’
print(str(666)+str(9)) #'666'+'9'=='6669'
结果:
(4)布尔类型转换为字符串
print(str(False))#‘False’
print(str(True))#'True'
结果:
(5)整型转换为布尔类型
print(bool(1))
print(bool(25))
print(bool(0))
结果:
(6)字符串转换为布尔类型
非空字符串转化为布尔类型为:True;空字符串转换为布尔类型为:False
print(bool(''))
print(bool(' '))
print(bool('afa'))
结果:
(7)三句话搞定类型转换:
(1)其他所有类型转换为布尔类型时,除了空字符串(即:字符串中的内容什么也没有,也可以说成是字符串的长度为0)、0(零)以外其他都是True。
(2)字符串转整型时,只有字符串中的内容都是数字时才可以转换为整型,其他情况都报错。
(3)想要转换为哪种类型,就用这种类型的英文包裹一下。
str(...)
int(...)
bool(...)