ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-11-02 17:56:22  阅读:285  来源: 互联网

标签:abc name type s1 数据类型 用户 print input 交互


一、程序与用户交互

  用户交互就是人往计算机中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

    

 

标签:abc,name,type,s1,数据类型,用户,print,input,交互
来源: https://www.cnblogs.com/hexianshen/p/11783274.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有