基本数据类型,输入输出,基本运算符

基本数据类型

数字,字符串,字典,列表,布尔

数据类型定义

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(salary),salary)

二. 字符串类型str: 名字\家庭住址\单个爱好\性别等描述性质的特征
     定义:在引号(单引号\双引号\三引号)内包含一串字符,不同引号大部分情况下没有区别
  name1='egon'
  name2="egon"
  name3="""egon"""

  #没有区别
  print(type(name1))
  print(type(name2))
  print(type(name3))

  #当内部的打印结果带有引号的 时候,外部要区分
  msg='my name is "egon"'
  print(msg)

  >>my name is "egon"

  字符串类型有加法和乘法,用于拼接字符串或重复打印,但是大量拼接字符串会消耗内存,不推荐使用

三. 列表list: 记录多个值,比如人的多个爱好,一个班级多个学生的性别
  定义:在[]内用逗号分隔开多个任意类型的值
     l=[1,3.1,'aa',['a','b','c',['aaaa','bbbb']]]#列表嵌套
    # print(l)
    # print(l[0])
    # print(l[2])
    # print(l[3][1])
    # print(l[3][3][0])

四. 字典dict:记录多个key:value值

   定义:在{}内用逗号分隔开多个key:value的值,其中value可以是任意数据类型,而key通常应该是字符串类型

   字典嵌套以及调用代码:

 1 emp_info={
 2     'name':'egon',
 3     'hobbies':['play','sleep'],
 4     'company_info':{
 5         'name':'Oldboy',
 6         'type':'education',
 7         'emp_num':40,
 8     }
 9 }
10 print(emp_info['company_info']['name'])
View Code

五. 布尔类型bool:只有True,False

  所有类型的值都自带布尔值: 当数据类型的值为0,None,空时,布尔值为False,除此以外都为True,空指的是空字符串,空列表,空字典

  以下代码执行结果均为False  
  print(bool(0))  
  print(bool(None))  
  print(bool(''))  
  print(bool([]))  
  print(bool({}))  

输入输出

  输入

  在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要求使用者必须输入一个明确的数据类型,输入什么类型就存成什么类型

      输出

  语句结构:
            print('my name is %s'%name)#如果有两个元素,需要用括号括起来!

    print('my name is %s my age is %s' %(name,age))
  print('my name is %s my age is %s' %([1,2,3],18)) #%s可以收任意类型的值
  print('my name is %s my age is %d' %('egon',18))
  print('my name is %s my age is %d' %('egon','18')) #%d只能接收整型(了解,大部分情况下用%s)

基本运算符

1 算术运算
  print(10 + 1.1)
  print(10 / 3) # 有整数部分有余数部分
  print(10 // 3) # 去掉小数部分
  print(10 % 3) #取余
  print(2 ** 3)#次方

2 比较运算
  比较运算只能在同类型之间进行,其中int与float同属于数字类型
  print(10 > 3.1)
  print(10 >= 10)

   了解:字符之间也是可以比较的,背后对应的是ASCII码表;
   msg1='abcdefg'
   msg2='abce   

   msg3='ab1  

      print(msg2 > msg1)#字符串的比较是将同位上的字符大小进行比较,如果同位上的字符不是同类型,不能比较大小,会报错;


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

3 赋值运算
  3.1 增量赋值
     # age=18
       # age=age + 1
       age+=1  即  age=age+1

    # x=10
            x%=3  即 x=x%3

    3.2 链式赋值
      # x=10
           # y=x
           # print(x is y)
     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)

    3.4 解压赋值
       nums=[1,2,3,4,5]
       # a=nums[0]
       # b=nums[1]
       # c=nums[2]
       # d=nums[3]
       # e=nums[4]
       a,b,c,d,e=nums
       print(a,b,c,d,e)

     # a,b,c,_,_=nums #_=5
  # print(a,b,c)
  # print(_)

       # a,b,*_=nums #
    # print(a,b)

4 逻辑运算:and,or,not
  and:连接左右两个条件,两个条件必须都成立,最后结果才为True,一旦左边条件为假则最终结果就为假,没有必要再去计算右面条件的值

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

  not,and,or的优先级通过括号来区分,提高代码可读性
    print((True and (False or True)) or (False and True))

5 身份运算:is与==

 重点

1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典

2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间) 
posted @ 2018-09-13 16:09  ChuckXue  阅读(470)  评论(0编辑  收藏  举报