一、变量的定义  
变量名的命名规范:变量名是标识符的一种,变量名不能随便起,要遵守 Python 标识符命名规范。   
1 . 变量名为单个单词的话全部小写
name =  "张三" 
2 . 多个单词组成的话,多个单词也都是全部小写再用 _ 拼接在一起
host_name =  "localhost" 
3 . 单词加数字的组合
name1 =  "李四" 
1 . 不能以数字开头
1name =  "" 
2 . 不能使用保留字作为标识符
global =  "" 
3 . 不能包含空格、@、% 以及 $ 等特殊字符
$name  =  "" 
1 .以单下划线开头的标识符,表示不能直接访问的类属性,其无法通过 from.. .import* 的方式导入
_name =  "" 
2 .以双下划线开头的标识符表示类的私有成员,无法在类的外部调用
__name =  "" 
3 .以双下划线作为开头和结尾的标识符是专用标识符。
__name__ ==  '__main__' 
4 .允许使用汉字作为标识符,尽量不要使用
姓名 =  "" 
  
变量的声明:Python 是弱类型的语言,在定义变量的时候,无须像强类型语言(C语言、C++、Java )等在定义变量的时候必须先指定变量的数据类型,Python 可以直接赋值。   
int n =  10 ; 
n =  10 
  
变量的赋值:Python 使用等号 = 作为赋值运算符,变量的值一旦被修改,之前的值就被覆盖掉。   
1 .将10赋值给变量n
n =  10 
2 .变量的值不是一成不变的,它可以随时被修改,只要重新赋值即可
n =  20 
3 .可以将不同类型的数据赋值给同一个变量
n =  "hello" 
4 .除了赋值单个数据,还可以将表达式的运行结果赋值给变量
n =  10  + 20 
  
 二、变量的数据类型  
整数类型(int):包括正整数、0 和负整数。有些强类型的编程语言会提供多种整数类型,每种类型的长度都不同,能容纳的整数的大小也不同,例如Java语言提供了 short、int、long。而 Python 则不同,它的整数不分类型,或者说它只有一种int类型的整数,整数的取值范围是无限的,不管多大或者多小的数字,Python 都能轻松处理。   
num =  0 
num =  99999999999999999 
num =  -9999999999999999
  
小数类型(float):Python 只有一种小数类型,就是 float。Java语言有两种小数类型,分别是 float 和 double。   
f1 =  2.5 
f2 =  0.1256584 
f3 =  2 .5e4
  
复数类型(complex):由实部(real)和虚部(imag)构成,在 Python 中,复数的虚部以j或者J作为后缀。   
c1 =  2  + 0 .2j
c2 =  5  - 0 .5j
print( "c1+c2: " , c1+c2) 
print( "c1*c2: " , c1*c2) 
c1+c2:  ( 7 -0.3j) 
c1*c2:  ( 10.1 +0j) 
  
字符串(string):若干个字符的集合就是一个字符串,字符串必须由双引号" "或者单引号’ '包围。   
1 .对字符串中包含的单引号' 或者双引号" 需要使用反斜杠\进行转义
str = ' I\ 'm ok! '2.使用不同的引号包围字符串
str = "I' m ok! "3.要想换行书写一个比较长的字符串,必须在行尾添加反斜杠\
str = " hello" \" I'm ok!"4.表达式的换行也需要在行尾添加反斜杠\
num = 2 + 8 / 4 + \2 * 55.长字符串由三个双引号"""或者三个单引号' ''包围的话,行尾不需要加\,且长字符串中的换行、空格、缩进等空白符都会原样输出
str = """hello
I' m ok! "" "6 .在普通字符串或者长字符串的开头加上r前缀,就变成了原始字符串
str =  r'D:\Program Files\Python' 7 .原始字符串中的反斜杠仍然会对引号进行转义,因此原始字符串的结尾处不能是反斜杠
str =  r'D:\Program Files\Python\'   
str =  r'D:\Program Files\Python'  '\\'   
  
字节串(bytes):只负责以字节序列的形式(二进制形式)来存储数据,bytes 类型的数据非常适合在互联网上传输,可以用于网络通信编程,还可以用来存储图片、音频、视频等二进制格式的文件。   
1 .创建空 bytes
b1 =  bytes( )    或者通过空字符串  b2 =  b'' 2 .通过b前缀将字符串转换成 bytes
b3 =  b'hello world' 3 .通过 bytes( )  方法并指定字符集将字符串转换成 bytes
b4 =  bytes( 'hello world' , encoding = 'UTF-8' ) 4 .通过 encode( )  方法并指定字符集将字符串转换成 bytes
b5 =  "您好!" .encode( 'UTF-8' ) 5 .通过 decode( )  方法将 bytes 对象转换为字符串
str =  b5.decode( 'UTF-8' ) 
  
布尔类型(bool):用来表示真(对)或假(错),如果这个事情是正确的,用 True(或 1)代表;如果这个事情是错误的,用 False(或 0)代表。   
1 .用于比较两个数的大小的结果
>> >  2 >1 
True
>> >  2 >5 
False2 .当作整数使用(尽量不要这么使用)
>> >  False+1
1 
>> >  True+1
2 
  
数据类型转换:Python 已经为我们提供了多种可实现数据类型转换的函数。   
1 .将 x 转换成整数类型
num =  int( x) 
2 .将 x 转换成浮点数类型
f1 =  float( x) 
3 .将 x 转换为字符串
str1 =  str( x) 
4 .将整数 x 转换为一个字符
c1 =  chr( x) 
5 .将一个字符 x 转换为它对应的整数值
n2 =  ord( x) 
6 .将一个整数 x 转换为一个十六进制字符串
str2 =  hex( x) 
7 .将一个整数 x 转换为一个八进制的字符串
str3 =  oct( x) 
  
格式化字符串:通常使用以%开头的占位符对各种类型的数据进行格式化输出。常用的转换说明符有:  (1)%d、%i:将被十进制整数替换;  (2)%o:将被八进制整数替换;  (3)%x、%X:将被十六进制整数替换;  (4)%s:将被字符串替换;  (5)%f、%F:将被十进制浮点数替换;  (6)%e:将被科学计数法表示的浮点数(e 小写)替换;  (7)%E:将被科学计数法表示的浮点数(E 小写)替换;   
1 .将格式化字符串中的占位符,替换成变量的值
age =  18 
print( "I'm %d years old!"  % age)   2 .格式化字符串中也可以包含多个占位符,这个时候也得提供多个表达式,多个表达式必须使用小括号(  ) 包围起来
name =  "小米" 
age =  18 
addr =  "中国深圳" 
print( "%s已经%d岁了,他家在%s。"  % ( name, age, addr)  ) 3 .指定最小输出宽度,在占位符的%后面加上指定的宽度数
str =  "abcde" 
print( "最小输出宽度指定为3: %3s"  % str) 
print( "最小输出宽度指定为10: %10s"  % str) 
注意:
这里当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。4 .指定对齐方式,在占位符的%后面加上指定的对齐标志符:
- 代表左对齐;
+ 代表数字总要带着符号;
0  代表宽度不足时补充 0 ,而不是补充空格。
n =  12345 
print( "最小宽度为8,左对齐,带上符号,宽度不足时补充0: %-+08d"  % n) 5 .指定小数精度,在小数的 .  后面加上小数的精度数
f =  3.1415926 
print( "%+08.3f"  % f) 
  
转义字符:以反斜杠\开头的字符,\ 的作用主要是将普通含义的字符转换成特殊含义字符或者将一些有特殊含义的字符转换成普通的字符输出,常见的转义字符有:  (1) \n:换行符,将光标位置移到下一行开头。  (2) \r:回车符,将光标位置移到本行开头。  (3) \t:水平制表符,也即 Tab 键,一般相当于四个空格。  (4) \b:退格(Backspace),将光标位置移到前一列。  (5) \\:反斜线。  (6) \':单引号。  (7) \":双引号。  (8) \:在字符串行尾的续行符,即一行未完,转到下一行继续写。