用户交互、基本数据类型及其使用

一、程序与用户交互

  用户交互就是人往计算机中input/输入数据,计算机print/输出结果,交互的本质就是输入、输出

  1、输入input

      python3 中的input功能和在python2 有一些不同:

# 在python3中,input功能会等待用户的输入,用户输入任何内容都会变成字符串类型,然后赋值给左边的变量名
>>> name = input("请输入你的名字:")
请输入你的名字:abc    #name = "abc"
>>> password = input("请输入你的密码:")
请输入你的密码:123    #password = "123"
>>> type(name)
<class 'str'>
>>> type(password)
<class 'str'>

# 在python2中,input功能会需要用户输入一个明确的数据类型
# 但是也有一个和python3一样的用法,就是raw_input
>>> name = input("请输入你的名字:")
请输入你的名字:abc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
>>> name = input("请输入你的名字:")
请输入你的名字:"abc"
>>> name
'abc'
>>> type(name)
<type 'str'>
>>> password = input("请输入你的密码:")
请输入你的密码:123
>>> type(password)
<type 'int'>
>>> name = input("请输入你的名字:")
请输入你的名字:[1,2]
>>> type(name)
<type 'list'>
>>> name = raw_input("名字:")
名字:[1,2]
>>> type(name)
<type 'str'>

  2、输出print

      格式化输出就是把一段字符串里面的某些内容替换掉后再输出

      格式化输出三种方式:

      a、使用占位符%d、%s

# %s占位符可以接收任意类型的数据
# %d占位符只能接收数字

>>> print('你的名字叫%s,你的年龄是%d'%('abc',18))
你的名字叫abc,你的年龄是18

      b、使用format方法

# format按照前后顺序接收数据
>>> print('你的名字:{},你的年龄:{}'.format('abc',18))
你的名字:abc,你的年龄:18

# format按照对应关系接收数据
>>> name = 'abc'
>>> age = 18
>>>
>>> print('你的年龄:{age},你的名字:{name}'.format(name = name,age = age))
你的年龄:18,你的名字:abc

        c、使用f-string方法

# f"{}"方法
>>> name = 'abc'
>>> age = 18
>>> print(f"你的年龄{age},你的名字{name}")
你的年龄18,你的名字abc

二、基本数据类型

  学习变量是为了让计算机能够像人一样去记忆事物的某种状态,而事物的状态是有很多种的类型的,例如人的身高、体重、年龄、职位等,而变量也就有不同的数据类型

  数据:描述、衡量数据的状态

  类型:不同的事物需要不同的的类型存储

  1、数字类型

    a、int 整型

      age = 18  本质是:age = int(18)

# 在python3 中,无论多大数值的整型,数据类型都是 int
>>> a = 11111111111111111111111111111111
>>> type(a)
<class 'int'>

# 在python2 中,范围在[-24xxxxxxxx,24xxxxxxxx]:int
#                       不在这个范围的        :long
>>> a = 1111111
>>> type(a)
<type 'int'>
>>> a = 1111111111111111111111111111111111111
>>> type(a)
<type 'long'>

    b、float浮点类型

      weight = 65.4  本质是:weight = float(65.4)

>>> weight = 65.4
>>> type(weight)
<class 'float'>

  2、str字符串类型

    定义:存一些描述性信息,存个人爱好,个人简介

     字符串引号是用没有区别,但是不能混用
     如果字符串中还需引号,就必须嵌套

     s1 = 'abc'  本质是:s1 = str(abc)

# python3 str 序列其实是Unicode序列
>>> ss1 = 'abc'
>>> type(ss1)
<class 'str'>
>>> ss1 = ss1.encode('utf-8')
>>> ss1
b'abc'
>>> type(ss1)
<class 'bytes'>

# python2 str 序列其实是8个bit位的序列
>>> s1 = 'abc'
>>> type(s1)
<type 'str'>
>>> s1 = s1.decode("utf-8")
>>> s1
u'abc'
>>> type(s1)
<type 'unicode'>

    字符串可以使用 + 运算,效果就是把两个字符串拼接起来

>>> s1 = 'abc'
>>> s2 = 'def'
>>> s3 = s1 + s2
>>> s3
'abcdef'

  3、list列表类型

    存在一个或者多个类型的值,列表索引下标是从0开始的

>>> s1 = ['a',12,['b','c','d',18]]
>>> s1[1]
12
>>> s1[2][0]
'b'

  4、dict字典

    定义方法:通过大括号存储数据,通过key:value这种映射关系定义键值对

    每个键值对通过括号进行分隔

>>> d1 = {"name":'abc',"age":19}
>>> type(d1)
<type 'dict'>
>>> d1['name']
'abc'
# 字典可以嵌套
>>> d2 = {"name":'abc',"age":19,"hobby":['d','e']}
>>> d2["hobby"][1]    #取第二个爱好e
'e'

  5、bool布尔类型

    主要用判断事物的对错,一般不会单独定义

>>> 1<2
True
>>> a = 277
>>> b = 277
>>> a == b    #等号比较的是value
True
>>> a is b    #is比较的是地址
False
“““
值相等的情况下,id不一定相等
id相等的情况下,值一定是相等
”””

三、基本运算符

  1、算术运算

    +、-、*、/

    //  整除

    %  取模

    **  指数

  2、赋值运算

    +=、-=、*=、/=

>>> a = 1
>>> a += 1    #类似于a = a + 1
>>> a
2
>>> b = 5
>>> b -= 1    #类似于b = b - 1
>>> b
4
>>> c = 2
>>> c *= 2    #类似于c = c * 2
>>> c
4
>>> d = 2
>>> d /= 2    #类似于d = d / 2
>>> d
1

  3、链式赋值

>>> x = y = z = 1
>>> print(x,y,z)
(1, 1, 1)

  4、交叉赋值

>>> a = 1
>>> b = 2
>>> print(a,b)
(1, 2)
# 交换a、b的值
>>> a,b = b,a
>>> print(a,b)
(2, 1)

  5、解压赋值

>>> s1 = [1,2,3,4,5]
>>> a,b,c,d,e = s1
>>> print(a,b,c,d,e)
(1, 2, 3, 4, 5)
# 当需要赋值的数小于列表的长度时,用*_表示缺省
>>> s2 = [1,2,3,4,5]
>>> a,b,c,*_=s2
>>> print(a,b,c)
1 2 3
>>> *_,e,d,f = s2
>>> print(e,d,f)
3 4 5
>>>

  6、逻辑运算

    与、或、非

    and、or、not

    

 

posted @ 2019-11-02 17:40  treeter  阅读(562)  评论(0编辑  收藏  举报