程序的作用是处理数据,变量的作用是存储数据
函数:一个提前准备好的代码,可以直接使用,而不用关心内部的细节
变量的定义
1)变量创建前必须经过赋值
2)赋值符号用=
3)格式:变量名 = 值
变量定义之后,后续就可以直接使用了,尤其是使用交互式查看变量内容,直接输入变量名即可
变量的命名规则
标识符就是变量名、函数名、关键字(如import)
1>变量名不是你想怎么起就怎么起的,需要见名知义
2>第一个字符必须是下划线“_”或者字母,剩下的部分可以是字母、数字(0-9)、下划线
3>变量名是对大小写敏感的,如:myname和myName不是同一个变量
4>不能与关键字重名
5>不能数字开头
驼峰命名法
当变量名是由2个或以上单词组成
小驼峰:第一个单词以小写字母开始,后续单词首字母大写,如lastName
大驼峰:每一个单词首字母都大写,如LastName
变量的类型
在内存中创建一个变量,会包括变量的名称,保存的数据,存储的数据类型以及变量的地址
在Python中,定义变量是不需要指定变量的数据类型,因为在运行的时候,Python解释器会根据变量赋值语句,自动推导出变量中保存的数据的准确类型
数据类型分为数字型和非数字型
数字型:
bool--布尔(真对应数值为1,假对应的是0)
int--整数
float--浮点数(小数)
complex--复数型:主要用于科学计算,如电感电容
非数字型:
str--字符串
列表
元组
字典
变量类型的查看-函数type
使用方式:type(name)
不同类型之间的变量运算
- 数字型变量之间可以直接计算
- 字符串变量之间使用 + 拼接字符串
- 字符串变量可以用整数使用 * 重复拼接,如果拼接部分使用了()表示为算术运算
- 数字型变量和字符串之间不能进行其他计算
变量的输入 input
输入:用代码获取用户通过键盘输入的信息
在Python中要获取用户在键盘上的输入信息,需要使用input函数
语法:
字符串变量 = input("请输入")
用户输入任何内容,Python都认为是一个字符串
变量类型转换函数
int(x):将x转成为一个整数
float(x):将x转换成一个浮点数
变量的格式化输出(格式化字符串)
格式化操作符:%
包含%的字符串被称为格式化字符串
字符串:%s
有符号的十进制整数,%06d表示输出的整数显示位数为6位,不足的地方使用0补全:%d
浮点数,%.02f表示小数点只显示2位:%f
输出%:%%
十六进制:%x
语法格式:
print("格式化字符串" % 变量) print("格式化字符串" % (变量1,变量2...)) c = 0.532 print("百分比 %.2f%%" % (c*100)) a = 1.1 b = 3.35 c = 5.3 print("abc三个变量的值分别为%.02f,%.02f,%.02f" % (a, b, c))
变量的引用
1)变量和数据保存在内存中,是分开存储的
2)在Python中函数的参数传递和返回值都是靠引用传递的
3)数据保存在内存中的一个位置,变量中保存着数据在内存中的地址
4)变量中记录数据的地址,就叫引用
5)使用 id() 函数可以查看变量中保存数据所在的内存地址,如 a=1, id(a)
注意:如果变量已经定义,当给一个变量赋值时,本质上就是修改了数据的记录地址
可变和不可变类型
不可变类型:内存中的数据不允许被修改
数字类型
字符串
元祖
- 可变类型:内存中数据可以被修改
列表
字典
注意:字典的key只能使用不可变类型的数据
可变类型使用方法修改并不会更改引用的地址,使用赋值可以修改地址
局部变量和全局变量
>>局部变量 是在函数内部 定义的变量,只能在函数内部使用,不同的函数可以定义相同的名字的局部变量,各用各的不会产生影响
>> 全局变量 在函数外部定义的变量,(没有定义在某一个函数内),所有函数内部都可以使用这个变量
变量的生命周期
1)所谓生命周期:变量从 被创建 到 被系统回收 的过程
2)局部变量 在函数执行时才会被创建
3)函数执行结束后 局部变量 被系统回收
4)局部变量在生命周期内,可以用来存储函数内部临时使用到的数据
全局变量使用注意:
1)首先查找函数内部 是否存在指定名称的局部变量,如果有,直接使用
2)如果没有,查找函数外部是否存在 指定名称的全局变量,如果有,直接会用
3)如果还没有,程序报错
全局变量的修改
在Python中,是不允许直接修改全局变量的值
如果使用赋值语句,会在函数内部,定义一个局部变量,不会修改全局变量的值
num = 10 def demo1(): # 希望修改全局变量的值 num = 20 # 此处的赋值是定义一个局部变量 print ( "demo1---> %d" % num ) def demo2(): print ( "demo2---> %d" % num ) demo1 () # 输出的结果是20 demo2 () # 输出的结果还是10
使用global关键字可以在函数内部修改全局变量
num = 10 def demo1(): # 希望修改全局变量的值 global num # global的作用是告诉解释器后面的变量是一个全局变量,在进行赋值语句时,就不会再创建局部变量 num = 200 print ( "demo1---> %d" % num ) def demo2(): print ( "demo2---> %d" % num ) demo1 () # 输出的结果是200 demo2 () # 输出的结果还是200
全局变量的定义位置
在开发时,应该把模块中的所有全局变量定义在函数上方,就可以保证所有函数都能够正常访问到每一个全局变量
代码结构示意图:
shebang (写在脚本中第一行开头中,它指明执行脚本文件的解释程序,符号 #!如:#! python3)
import 模块
全局变量
函数定义
执行代码
全局变量的命名的建议
为了避免全局变量和局部变量出现混淆,在定义全局变量时,有些公司开发要求,如在全局变量前应该增加g_或者gl_的前缀
具体要求格式,各公司要求可能会存在差异