我的Python成长之路---Day3.Python基础篇(数据类型)

版权声明:此博客实属作者原创,转载请注明出处! https://blog.csdn.net/Onion_cy/article/details/82688109

补上昨天的变量剩余部分内容:

一、变量的三大特征:

1.id(变量的唯一编号,内存地址不同,id则不同)

2.type(类型,一些常见的类型如:整型、浮点型、字符串)

3.value(值)

如:x=1  变量x的三个特征查看,如图:

常量(不变的量)

AGE_OF_ALLEN=74

在Python中一般遇到全为大写的变量名即视为常量,一般情况下不发生改变

二、基本数据类型

1.什么是数据类型

变量值即是我们存放的数据,数据类型即是变量的类型

2,变量为何要区分变量类型

因为变量值用来记录现实世界中不同的事物特征,针对不同的事物就要用不同类型的值去标识

3.如何应用数据类型

数字类型的数据类型包括两种(整型和浮点型)

1.整型int: 年龄\身份证号\电话号码\等级

例如:age=18(在这里实质是:age=int(18))

print(id(age),type(age),age)   输出结果如图所示:

2.浮点型float: 薪资\身高\体重

例如:salary=3.1(在这里实质是:salary=float(3.1))

print(id(salary),type(asalary),salary) 

字符串类型str:   名字\家庭住址\单个爱好\性别等等具有描述性的特征

定义:在引号('',"",""" """,''' ''')单引号、双引号、三引号内包含的一串字符

例如:  name1='agon'

          name1=''agon''

          name1='''agon'''

          name1='''

                       agon'''     (三引号可值放在多行使用)

print(id(name1),type(name1),name1) 

msg=''My name is ‘agon’''    (在这里如果想要打印出'agon' 不能使用相同的引号)

print(msg)

字符串的拼接:+、*

msg1=‘hello'    msg2='world'

res=msg1+msg2(msg1和msg2无缝拼接)

print(res,type(res))

print('='*100)    (打印出来100个“=”)

3.列表list:  记录多个值,比如人的多个爱好,一个班级多个学生的性别

定义:在[]内用逗号分隔开多个任意类型的值

L=[1,3.1,'aa',['a','b','c',['aaaa','bbbb','cccc']]]   (列表的嵌套:在列表中重复使用心得列表)

列表中的取值:列表具有索引功能,从0开始对应列表中第一个数据,1对应第二个数据,2对应第三个数据,以此类推来进行取值

在上述列表中:

print(1)

print(1[0])

print(1[2])

print(1[3][1])

print(1[3][3][0])

4.字典dict:记录多个key:value值(value可以是任意类型的数据)

定义:在{}内用逗号分隔开多个key:value的值,  而key通常应该是字符串类型

例如: info={

              'name':'agon',

              'age':18,

              'sex':'male',

              'level':10,

              'hobbies':['music','read','dancing']

                 }                (在这里实质是:info=dic(...)

# print(type(info))
# print(info['level'])
# print(info['age'])
# print(info['hobbies'][1])

实例:

emp_info={
    'name':'allen',
    'hobbies':['play','sleep'],
    'company_info':{
        'name':'aliyun',
        'type':'IT',
        'emp_num':500,
    }
}
print(emp_info['company_info']['name'])

5.布尔类型bool: True/False 用来表示条件是否成立

age=18

print(age>30)

print(age<30)

所有类型的值都自带布尔值,当数据类型的值为0,None,空(包括0,{},[])时布尔值为False,除此以外都为Ture

# print(bool(0))
# print(bool(None))
# print(bool(''))
# print(bool([]))
# print(bool({}))
# print(bool(1))

三、输入输出

在python3中的input会将用户输入的任何类型都存为str类型

# name=input("请输入您的用户名: ") #name="egon"
# pwd=input("请输入您的密码: ") #pwd='123'

# if name == 'egon' and pwd == '123':
#     print('登陆成功')
# else:
#     print('用户名或者密码输错了')

在python3中只有一个input,而python2中有input和raw_input

1.其中python2中的raw_input与python3中的input是一样的

2.不一样的是python2中的input要求使用者必须输入一个明确的数据类型,输入什么类型就存成什么类型

# age=input('>>>: ') #age="18"
# print(age,type(age))
# age=int(age) #age=int("18") #age=18
# print(age > 30)

# name=input('请输入您的用户名: ')
# age=input('请输入您的年龄: ')

# print('my name is my age is ',name,age)
# print('my name is ',name,'my age is ',age)

# print('my name is %s my age is %s' %(name,age))
# print('my name is %s my age is %s' %([1,2,3],18)) 
(# print('my name is %s my age is %d' %('egon',18))
# print('my name is %s my age is %d' %('egon','18')) 

%s(占位符)可以收任意类型的值 %d(占位符)只能接收整型

四、基本运算符

1.算数运算

print(10+1.1)

print(10/3)    有整数部分有余数部分的除法

print(10//3)   去掉小数部分的除法

print(10 % 3)   取余

print(2 ** 3)   2的3次方

2.比较运算

比较运算只能在同类型之间进行,其中int与float同属于数字类型

print(10>3.1)

print(10>=10)

# 了解
# msg1='abcdefg'
# msg2='abce'
# print(msg2 > msg1) True

# list1=['a',1,'b']
# list2=['c','b']
# print(list2 > list1)    True 

在上述字符串的比较运算中print的比较方式为从第一个字符开始比较如果第一个字符就分出大小,后边的比较不在进行,如list1和list2的比较

如果前几个字符一样知道分出大小为止,如msg1和msg2的比较

3.赋值运算

3.1增量赋值

age=18
age=age+1
age+=1    #age=age+1

x%=3   #x=x%3

3.2链式赋值

x=10
y=x
print(x is y)     True
a=b=c=d=e=111
print(a is b is c is d is e)

3.3交叉赋值

x=10
y=20
#一般方法:
temp=x
x=y
y=temp
#交叉赋值
x,y=y,x
print(x,y)      x=20
                y=10

3.4解压赋值

nums=[1,2,3,4,5]
a=nums[0]   a=0
b=nums[1]   b=1
c=nums[2]   c=2
d=nums[3]   d=3
e=nums[4]   e=4
a,b,c,d,e=nums
print(a,b,c,d,e)
如果只需要取前三个值在不需要的地方放''_''就可以了下划线可以在这里作为无用变量名存在

nums=[1,2,3,4,5]
a,b,c,_,_=nums     在这里下户线最终值为5 即: _=5
print(a,b,c)
print(_)

当数据较多时的表示占位表示方法
nums=[1,2,3,4,5,6,7,8,9,10...,9999999999]
a,b,*_=nums   (只取前两个值)
print(a,b)

4、逻辑运算:and、or、not

and:连接左右两个条件,两个条件必须都成立,最后结果才为True,一旦左边条件为假则最终结果就为假,没有必要再去计算右面条件的值
例如:   print(1 > 2 and 3 > 1)     结果为False
or:连接左右两个条件,两个条件但凡有一个成立,结果就为True,一旦左边条件为True则最终结果就为True,没有必要再去计算右面条件的值,
                                                      一旦左边条件为False,还需要去计算右面条件的值,如果为True,最终也True
not:取反

print(not 1 > 2 or 3 > 1)     not对距离最近的判断语句起作用
print(not 1 > 2)
print((True and (False or True)) or (False and True))   (在进行多个布尔值在一起进行逻辑运算时,可以用括号分出优先级便于计算)

5、身份运算:is与==

is是身份运算:比较的是变量id是否相等

==判断值是否相等

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


值相等id不一定相等
>>> x=1111111111111111111111111111111111111111111111111
>>> y=1111111111111111111111111111111111111111111111111
>>> id(x)
2181129522824
>>> id(y)
2181129523040
>>> x is y
False
>>> x == y
True
'''

猜你喜欢

转载自blog.csdn.net/Onion_cy/article/details/82688109
今日推荐