Python-基本数据类型 & 与用户交互

1、前言概念

1、什么是数据类型
    数据的种类,不同种类的数据的存取机制不一样,用途也不一样

    整型int
    浮点型float
    字符串类型str
    列表类型list
    字典类型dict
    布尔类型bool

2、数据为何要分类型
    数据是事物的状态,事物的状态是分为多种多样的,对应着就应该用不同类型的数据去记录

3、如何用数据类型

2、整型 int

2.1、整型的定义

age = 18  # age = int(18)
level = int(10)
print(level,type(level))

2.2、整型的作用

用于记录年龄、等级、个数、各种号码等不带小数点的纯数字类型

3、浮点型 float

3.1、浮点型的定义

salary = 3.1  # salary = float(3.1)
print(salary,type(salary))

3.2、浮点型的作用

用于记录身高、体重、薪资等带有小数点的数字类型

4、字符串类型 str

4.1、字符串的定义

' '或者" "或者''' '''或者""" """中间包含一系列字符
msg1 = '你hello zxl'  # msg1 = str('你hello zxl')
msg2 = "hello world"
# ''' '''和""" """可以写多行
msg3 = '''
111
222
333
'''
print(msg3)
print(type(msg3))

ps:要注意引号之间的配对,外层用双引号,内层就需要用单引号;反之也一样。
print('my name is "zxl"')
print("my age is '18'")

ps:字符串之间可以相加、相乘,但是效率很慢,相当于新建一个内存空间把原来的两个字符串拼接到一起,了解就好,不用!

4.2、字符串的作用

用于记录一些描述性质的内容,比如名字、国籍、一段话等等

5、列表类型 list

5.1、列表的定义

[] 内用逗号分隔开多个任意类型的值
有索引的概念:
	正向索引从 0 开始,向右依次 +1
    负向索引从 -1 开始,向左依次 -1
 #    0    1      2                  3		正向
 #   -4   -3     -2                 -1		负向
l = [111, 3.3, 'abc123', ['xxx', 'yyy', [333, 444]]]  # l = list(...)
print(l[0])  # 111
print(l[-1])  # ['xxx', 'yyy', [333, 444]]
print(l[-2])  # 'abc123'
print(l[-1][0])  # 'xxx'
print(l[-1][2][0])  # 333

5.2、列表的作用

用于存取多个任意类型的值,按照索引/顺序存放

6、字典类型 dict

6.1、字典的定义

{} 内用逗号分隔开多个key:value,其中value可以是任意类型,而key通常是字符串类型
字典是无序的,通过key找到对应的value:
d = {'k1':111, 'k2':1.1, 'k3':[222, 333], 'k4':{"a":1, "b":2}}  # d = dict(...)
print(d['k3'][0])  # 222
print(d['k4']["a"])  # 1

6.2、字典的作用

按照属性名存放多个值,key:value组合
info = {
    "name":"zxl",
    "age":18,
    "gender":"male",
    "annual_salary":18,
    "level":10
}
print(info)
print(info["age"])

7、小练习

把一个班级所有同学的信息存起来
students_info = [
    {'name':'zxl', 'age':18, 'gender':'male'},
    {'name':'zsx', 'age':19, 'gender':'male'},
    {'name':'ytk', 'age':20, 'gender':'male'},
    {'name':'xsq', 'age':18, 'gender':'female'}
]
print(students_info[3]['gender'])

8、布尔类型 bool

8.1、布尔类型的定义

总共就两个值 TrueFalse
-----------显式的布尔值-----------
x = True
y = False
print(type(x))
print(10 > 9)  # True
print(10 != 10)  # False
z = None
print(z is None)  #  True
print(type(z))  # <class 'NoneType'>
-----------隐式的布尔值-----------
所有数据类型的值都可以当做隐式的布尔值去用,其中0、空、None三者的布尔值为False,其余均为True
print(bool(0))  # False
print(bool())  # False
print(bool(""))  # False,''中间什么也不写才为空," "中间有空格,不为空
print(bool([]))  # False
print(bool({}))  # False
print(bool(None))  # False
print(bool(1))  # True

8.2、布尔类型的作用

通常会作为判断的条件

9、可变和不可变类型

# 可变:值改变,id不变,证明是在改原值===>不可hash
包括: list, dict, set
# 不可变:值改变,id也变,证明没有改原值,是产生了新的值===>可hash
包括: int, float, str, tuple

10、与用户交互

10.1、接收用户的输入

name = input("请输入你的用户名:")  # name = "zxl",input()会把用户输入的任何数据都存成字符串类型
print(name,type(name))  # zxl,<class 'str'>

age = input("请输入你的年龄:")  # age = "18"
age = int(age)  # 使用int()把用户输入的字符串类型转换为int类型
print(age,type(age))
print(age > 16)

# python2和python3中的input不一样,在python2中,input输入的是什么类型就存成什么类型,很鸡肋
# 在python2中,raw_input会将输入的任何内容都存成字符串类型,这个和python3中的input功能一样

10.2、格式化输出和换行符

# %s 字符串占位符,可以匹配所有类型的值,但是要按顺序去匹!
# %d 整型占位符,只匹配int类型
# %f 浮点型占位符,只匹配float类型,%f 默认保留小数点后六位,可以加上数字来限制小数位数,如%0.3f,则小数位只保留3位
msg1="my name is %s my age is %s" % ("zxl",18)
msg2="my name is %s my age is %s" % ("zxl",[1,2,3])
msg3="my name is %s my age is %d\n" % ("zxl",18)  # \n 换行符
print(msg1,end="")  # print()默认带有换行效果,end=''可以取消换行效果
print(msg2)
print(msg3)

username = 'zxl' 
age = 24 
print('my name is %s,my age is %d' % (username, age))

salary = 1.5 
print('my salaries is %0.1f every year' %(salary * 12))

11、实部与虚部(补充)

>>> x=1-2j 
>>> print(type(x))
<class 'complex'>  # 类型为 complex 
>>> 
>>> print(x.real)  # 实部 
1.0 
>>> print(x.imag)  # 虚部 
-2.0 
>>>

12、小整数池(了解)

# 这是python解释器提供的一种优化机制,在启动解释器的时候,会自动创建好一些常用的数据内存空间
在 python2 中范围是(-5,256),在范围内相同的变量值的 id 值相同
在 python3 中范围很大,具体不清楚,也不需要去记忆
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值