day03-变量,基本数据类型,基本运算符

今日内容:

程序 = 数据 + 功能

  1. 变量
  2. 基本数据类型
  3. 基本运算符
  4. 输入输出
    1. 相当于人类的耳朵眼睛..
  5. 流程控制之if判断

一. 变量

变量就是存取内存的地址

一.原则: 先定义,后赋值

1.1 定义

age = 18

三大组成部分:
变量名:根据内存地址找值
赋值符号:将变量值的内存地址绑定给变量名
变量值:就是我们存储的数据,或者说记录的事物的状态

1.2 引用

变量的引用python会自己根据你的内存地址给你返回值的本身
print(age)

二.变量名
命名的大前提:变量名的命名该见明知意
age = 18
level = 18
count = 18
命名的规范:
1.是由字母,数字,下划线组成
2.不能以数字开头
3.不能使用python的关键字

level_of_jkey = 18
_ = 18
"_" 不要用于变量名的开头,它可以这样使用,但是不能达到见明知意

1.3 命名风格

1. 驼峰体

LevelOfJkey = 18

2.纯小写加下划线(推荐)

level_of_jkey = 18

三.变量值
3.1 变量值的俩大特征
age = 18
salary = 1.5
res = age + 1
=========> 类型
print(type(age)) #
print(type(salary))

=========> id:就是值在内存中的身份证号,id反应的就是内存
print(id(age))
print(id(salary))

is : 判断的是id是否相等
== : 判断的是值是否相等

注意:

​ 如果id相等,证明就是同一个内存地址,值一定是相等的
​ 如果值相等,他们的id不一定相等,还有可能是不同的内存地址存同样的值.
C:\Users\菩萨>python3
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

x = 1000
y = 1000
print(x is y)
False
print(x == y)
True
z = 120
c = z
print(z is c)
True
print(z == c)
True

小整数池:python解释器在启动的时候,会先将小整数的内存地址申请好,运行的时候就可以只有运用.不用再重新申请内存地址.
x = 100000
y = 100000

print(x == y, id(x))
print(x is y, id(y))

True 和 False , None 都是python解释器事先给你造好了的内存地址.他们的id都是一个.

x = True
y = 10 > 3
z = 10 < 3
id(x)
140703900600656
id(y)
140703900600656
id(z)
140703900600688

3.2 内存管理,垃圾回收机制gc
del 解绑 解除 变量名 和 内存地址 之间的绑定
核心原理:引用计数
x = 100 # 100 的引用计数为1
y = x # 100 的引用计数为2
y = 200 # 100 的引用计数为1
del x # 100 的引用计数为0 当 计数为0时,垃圾回收机制就会自动给你在内存空间中清除了.

1.4分代回收:

​ -根据引用的次数更改的多少来改变其权重,权重越高的回收的周期越短
​ - 作用可以提示效率

1.5标记清除: 循环引用导致内存泄漏问题

常量: 不能改变的量
- 比如重力加速度
在python中定义一个常量应该要用全大写大变量名.不用也不会报错,但是不符合你的代码规范
- AGE = 18
在 go 语言中就是在定义的时候用到关键字 const
- const age int = 18

二.基本数据类型

2.1 整型int

  • 作用:形容年龄,个数,号码等

  • age = 18
    age = int(18)
    

2.2 浮点型 float

  • 作用:形容身高,体重,薪资.

  • salary = 1.5
    

2.3 字符串数据类型str

  • 作用:描述性的内容,如姓名,性别,国籍,种族

  • msg1 = '这是一个宋海星说好,刘洋说不好的故事'
    msg2 = "这是一个宋海星说好,刘洋说不好的故事"
    msg3 = '''
    这是一个宋海星说好,刘洋说不好的故事
    '''
    msg4 = """
    这是一个宋海星说好,刘洋说不好的故事
    """
    print(type(msg4))
    
  • 字符串不能存取多个数值,它只能存取一个整体.

2.4 列表类型 list

  • []内用逗号分隔开多个任意类型的元素

  • 作用:按照位置存放多个值,一般为同一种属性的值.

  • l = [111, 2.3, 'abc', [66, 77, 88]]
    对应的索引值
          0		1	  2		3
    取值的时候可以根据列表的索引去取对应的值
    例:取到77这个值
    ret = l[3][1]
    
  • 将你的兴趣爱好存放到一个列表中

    hobbies = ['read', 'music', 'movie', 'play']
    

2.5 字典类型dict

  • {}内用逗号分隔开的多个元素,每一个元素的组成都是key:value,其中的value类型可以是任意人性,而key通常都是字符串类型.

  • 作用:按照key存放多个值,key反映的是value的属性.

  • d = {"k1": 111, "k2": 1.3, "k3": "abc", "k4": [1, 2, 3], 'k5': {"a": 1, "b": 2, "k5": 3}}
    
    print(d['k1'])
    print(d["k4"][1])
    print(d['k5']["a"])
    print(d['k5']["k5"])
    
  • 用一种数据类型存一个人信息并取出其中的年龄

  • info = {
        'name': 'JKey',
        "age": 18,
        "gender": 'male',
        "hobby": ['music', 'play', 'eat']
    }
    print(info["age"])
    
  • 存放多个同学的信息

    student_info = [
        {"name": 'JKey', "age": 18, "gender": 'male', "hobby": ['music', 'play', 'eat']},
        {"name": 'liu', "age": 22, "gender": 'male', "hobby": ['music', 'play', 'eat']},
        {"name": 'song', "age": 21, "gender": 'male', "hobby": ['music', 'play', 'eat']},
    ]
    

2.6 布尔类型

  • 作用:记录真假的俩种状态.

  • z = True
    c = False
    print(type(z))  # <class 'bool'>
    
    print(10 > 1)  # True
    print(10 < 1)  # False
    name = 'jkey'
    print(name == 'jkey')  # True
    

三 基本运算符

3.1 算术运算符

算术运算符只能用来将同数据类型的进行计算

salary = 3.3
res = salary * 12

print(10 + 1)  # 11
print(10 - 3)  # 7
print(10 * 3)  # 30
print(10 / 3)  # 3.3333
print(10 // 3)  # 只保留整数部分
print(10 % 3)  # 取余数
print(10 ** 3)  # 10的3次方

print(10 + 3.1)  # 13.1
print(10 % 3.1)  # 0.634

了解,"+" 和 "*" 也能用作于字符串和列表

+
print("abc" + "def")
print("abc" + 18)

*
print("abc"*3)
print("=====================")
print('hello world')
print("="*50)

print([1,2,3]+[3,4,5])
print([1,2,3]*3)

3.2 比较运算符

x = 10
y = 10.0
print(x == y)

m = 10
n = "10"
print(m == n)
print(10 == [1,2,3])  # == 不限类型
print(10 + [1,2,3])

print(10 == [1,2,3])
print(10 != [1,2,3])

print(10 > 3.1)
print(10 >= 3.1)
print(10 <= 3.1)
print(10 < 3.1)

注意: "==" 符号俩边可以是不同的数据类型

了解

msg1="hello"
msg2="hez"
print(msg1 > msg2)

l1=[11,"x","abc","ddd"]
l2=[11,22,'zz']
print(l1 > l2)
posted on 2020-12-17 22:04  Jkeykey  阅读(191)  评论(0编辑  收藏  举报