一变量
1什么是变量
变量:在内存中开辟一块空间,存储规定范围内的值,值可以改变。通俗的说变量就是给数据起个名字,通过这个名字来访问和存储空间中的数据。
2变量的特点
- 可以反复存储数据
- 可以反复取出数据
- 可以反复更改数据(a=1,a这个名字指向了数据1,再执行a=2,其实是新开辟了新的空间,把a这个名字指向了新的空间)
3变量的命名规则
-
变量名只能是字母、数字或下划线的任意组合
-
变量名的第一个字符不能是数字
-
变量名要有见名知义的效果, 如UserName,user_name(可以第二个单词首字母大写,或者每个单词首字母大写或者用下划线"_"来连接所有单词
-
变量名区分大小写
-
以下关键字不能声明为变量名(关键字是python内部使用或有特殊含义的字符) ['False', 'None', 'True', 'and','as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if','import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
import keyword # 导入keyword模块 print(keyword.kwlist) # 打印上面的关键字列表
二变量的创建和交换
1变量的创建
在python中,每一个变量在使用前都必须赋值,变量赋值后,变量就创建成功了。 变量名 = 值
num = 100 # num第一次出现是表示定义这个变量
num = num-10 # 再次出现,是为此变量赋一个新的值
print(num)
a = 1
#查看a这个变量的内存中的地址
print(id(a))
a = 2
print(id(a))
b=1
print(id(b))
运行得到结果:
140728517710632
140728517710664
140728517710632
值不一样。说明是后面a=2 是一个新的内存地址。b=1 用的是和最开始a=1的内存地址
小结:变量名可以不一样,只要值一样,通过id()函数得到的内存地址编号就一样(目前仅限讨论数字这种不可变数据类型)
2两个变量值的交换
a, b, c = 1, 2, 3
print(a,b,c)
a, b, c =b, c, a
print(a,b,c)
运行得到结果:
1 2 3
2 3 1
三变量的类型
Python是强类型的动态解释型语言。 强类型: 不允许不同类型相加。如整型+字符串会报错。 动态:不用显式声明数据类型,确定一个变量的类型是在第一次给它赋值的时候,也就是说: 变量的数据类型是由值决定的。
name = "zhangsan" # str类型
age = 25 # 25没有加引号,则为int类型;加了引号,则为str类型;
height = 1.8 # float类型
marry = True # bool类型(布尔值)
# 通过type()函数得知变量的类型
print(type(name))
print(type(age))
print(type(height))
print(type(marry))
运行得到结果:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
1Python基本数据类型分类
- 数字
- int 整型(1, 2, -1, -2)
- float 浮点型(34.678)
- bool 布尔型(True/False)
- complex 复数(4+3J, 不应用于常规编程,这种仅了解一下就好
- 字符串 str 单引号和双引号内表示的内容为字符串 “hello world" "12345"
- 列表 list 使用中括号表示 [1, 2, 3, 4]
- 元组 tuple 使用小括号表示 (1, 2, 3, 4)
- 字典 dict 使用大括号表示,存放key-value键值对 {"a":1, "b":2, "c":3}
- 集合 set 也使用大括号表示,但与字典有所不同 {1, 2, 3, 4}
2类型的转换
| 转换函数 | 说明 |
|---|---|
| int(xxx) | 将xxx转换为整数 |
| float(xxx) | 将xxx转换为浮点型 |
| str(xxx) | 将xxx转换为字符串 |
| list(xxx) | 将xxx转换为列表 |
| tuple(xxx) | 将xxx转换为元组 |
| dict(xxx) | 将xxx转换为字典 |
| set(xxx) | 将xxx转换为集合 |
| chr(xxx) | 把整数[0-255]转成对应的ASCII码 |
| ord(xxx) | 把ASCII码转成对应的整数[0-255] |
age=25
print(type(age)) # int类型
age=str(25)
print(type(age)) # str类型
运行得到结果:
<class 'int'>
<class 'str'>
3 基本的输入函数input
语法结构:x=input(‘提示文字’) 注意:无论输入的数据是什么,x的数据类型都是字符串类型。如果需要整数类型,需要用int转换
实例01 input函数使用
name=input('请输入您的姓名:')
print('我的姓名是:'+name)
#执行脚本,控制台会等待我们的输入,输入july后得到
请输入您的姓名:july
我的姓名是:july
实例02 输入整数类型的数据
#实例02 输入整数类型的数据
num = input('请输入您的幸运数字')
print('您的幸运数字是:'+num) #连接成功,说明num是字符串类型
num = int(num) #使用内置函数int将num转成整数类型
print('您的幸运数字是:',num )
4 格式化输出
| 操作符 | 说明 |
|---|---|
| %s | 字符串 |
| %d | 整数 |
| %f | 浮点数 |
| %% | 输出 % |
name=input("what is your name: ")
age=int(input("what is your age: "))
num=int(input("what is your phone number: ")) # 因为iput输入的纯数字也是是str类型,所以用int()转成int类型,这样才能在后面对应%d
print("%s你五年后 %s years old,and your phone number is %d"%(name,age+5,num))
# 按顺序对应,age对应%s,num对应%d. %s和%d类似就是占位符
下面这是一种新的格式化输出写法,不用去纠结是写%s还是%d,只对应好顺序就行.(0代表第一个,1代表第二个)
name=input("what is your name: ")
age=int(input("what is your age: "))
num=int(input("what is your phone number: "))
# 下面这是一种新的格式化输出写法,不用去纠结是写%s还是%d,只对应好顺序就行.(0代表第一个,1代表第二个)
print("{}你 {} 岁了, and your phone number is {}".format(name,age,num))
print("{0}你五年后 {2} 岁了, and your phone number is {1}".format(name,num, age+5))
小结
- %s或%d相当于一个占位符,按顺序--对应后面()里面的变量(需要类型对应)
- {}也相当于是一个占位符,按顺序--对应后面format()里的变量,这种写法的好处是不用对应类型
- 这三种写法为格式化输出,简单来说就是为了解决调用变量值和其他字符串结合场景的方式
四实战
name = input("what is your name: ")
sex = input("what is your sex: ")
job = input("what is your job: ")
phonenum = input("what is your number: ")
info = print("""---------- information of {} ----------
name: {}
sex: {}
job: {}
phonenum: {}""".format(name, name, sex, job, phonenum))
执行结果
---------- information of zhangsan ----------
name: 张三
sex: 男
job: worker
phonenum: 123436373