美文网首页
python3 ---数据类型 (2)

python3 ---数据类型 (2)

作者: 比卡_没有丘 | 来源:发表于2019-03-23 21:53 被阅读0次

    为什么编程语言中要有类型

    类型有以下几个重要角色:

    1. 对机器而言,类型描述了内存中的电荷是怎么解释的。
    2. 对编译器或者解释器而言,类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。
    3. 对程序员而言,类型可以帮助他们命名、组织概念,帮助编纂文档,支持交互式编辑环境等。

    以上观点是 Edwin Brady 在《Type-driven Development with Idris》中的说法。

    一、数据类型与数据转换

    1. 数据类型

    1.1 整形

    任何仅含数字的序列在 Python 中都被认为是整型

    >>> a = 0
    >>> b = 100
    >>> c = -2
    >>> d = 0x50
    >>> 0b0101
    5
    >>> type(0b0101)
    <class 'int'>
    
    

    进制在 Python 中的表示形式

    >>> 11            # 十进制
    >>> 0b01011  # 二进制
    >>> 0o13        # 八进制
    >>> 0xb          # 十六进制
    
    

    1.2浮点型

    带小数点的数字, 就是平常我们说的小数。

    0.1
    -0.7
    
    

    1.3字符串类型

    s1 = "www.qfedu.com"
    s2 = 'yangge'
    
    print (
        """
        hello
        word
        """
    )
     ----result------------
         hello
         word
    

    1.4布尔类型

    布尔值只有两个

    • True 表示真
    • False 表示假
    True
    False
    1 == True
    0 == False
    ------------典型案例--------------------------
    a= False
    b = 0
    a == b
    True         //即使 a = b 他们两个id也不相同
    id(0)  
    1945857024
    id (False)
    1945366720
    
    

    2.数据类型之间的转换

    2.1 把其他类型转换为整型

    # 转换
    >>> int(0.1)
    0
    >>> int(0.9)
    0
    
    

    int 不能对字符串类型表示的浮点数进行转换

    In [52]: int('123.9')
    --------------------------------------------------------------
    ValueError                   Traceback (most recent call last)
    <ipython-input-52-843b2aecee10> in <module>()
    ----> 1 int('123.9')
    
    ValueError: invalid literal for int() with base 10: '123.9'
    
    

    2.2 把其他类型转换为浮点型

    # 转换
    >>> float(1)
    1.0
    >>> float('1')
    1.0
    >>> float('-1')
    -1.0
    >>> float(-1)
    -1.0
    >>> float('1.3')
    1.3
    
    

    2.3 把其他类型转换为字符串

    >>> str(1)
    '1'
    >>> str(1.0)
    '1.0'
    >>> str(True)
    'True'
    >>> str(False)
    'False'
    >>>
    
    

    2.4 把其他类型转换为布尔型

    image

    三、扩展进制运算

    image image

    四、运算符

    1. 基本算术运算符

    n = 1 + 100
    print(n)
    
    print(100 / 4)
    print(100 // 4)      #除数取整
    print(2 **  10)      #幂数相乘
    print(10 % 3)      #取余数
    
    // 累加 累乘 累除 等等
    n = 0
    n +=1
    n *=3
    print(n)
    

    2运算的判断

    2.1 值判断

    image

    2.2 逻辑判断和成员判断

    image

    典型事例:

    n1 = 100
    n2 = 100
    s1 = 'hello'
    s2 = 'hello'
    b = n1 == n2 and s1 != s2     //并判断
    print(b)
    b = n1 == n2 or  s1 == s2     //或判断
    print(b)
    
    //成员判断
    s = 'hello'
    print('h' in s )
    print('lo' in s)
    print('hle' in s )
    
    //not的使用:判断一个变量是否为真
    r1 = True
    r2 =False
    if r1:
        print('ok')
    if not r1:
        print('ok')      //不正确非输出
    if not  r2:
        print('ok')
    

    2.3 链式判断

    image

    3. “假” 在各种数据类型中的表示

    image

    五、流程控制语句

    1. if 判断语句

    基本的语法格式:
    if 条件语句: # 注意这里必须以英文的冒号结束
    条件语句为真时,执行的语句

    n = input("输入数字>>:")
    n = int(n)    # input 接收到的数据,都是字符串类型
    if n == 5:
        print('相等')
    
    
    n = input("输入数字>>:")
    n = int(n)
    if n == 5:
        print('相等')
    else:               # else 后边必须有英文的冒号
        print('No')
    
    
    n = input("输入数字>>:")
    # 必须输入数字来测试
    n = int(n)
    
    if not n:
        print("空值")
    elif n == 5:
        print('ok')
    elif n > 5:
        print('大了')
    else:
        print('小了')
    
    

    2. if嵌套语句

    n = input("输入数字>>:")
    if n.isdigit():
        f_n = int(n)
        if f_n == 5:
            print('ok')
        elif f_n > 5:
            print('大了')
        else:
            print('小了')
    else:
        print('请输入数字')
    
    

    典型案例展示:嵌套语句

    n = input("星期日你有空吗?")
    if n == "yes":
         inp = input("带身份证了吗?")
         if inp == 'yes':
             print("去如家 app")
         else:
             print("去我家")
    else:
        print('out')
    

    3. while循环

    方法一:                  
    while True:
        n = input("输入数字>>:")
        n = int(n)
        if n == 5:
            print('相等')
            break
        elif n > 5:
            print('大了')
        else:
            print('小了')
    
    方法二:
    c =7    //whille 赋值判断
    while c <10:
        c +=1
        print(c)
        n = input("输入数字>>:")
        n = int(n)
        if n == 5:
            print('相等')
            break
        elif n > 5:
            print('大了')
        else:
            print('小了')
    

    4. 迭代

    • 什么是迭代

    ​ 迭代 是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。

    ​ 每一次对过程的重复被称为一次“迭代”。

    • for 循环(英语:for loop)

    ​ 是一种编程语言的迭代陈述,能够让程式码反复的执行。

    ​ 它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器。

    ​ 这使得for循环能够知道在迭代过程中的执行顺序,记住上次被循环元素的位置。

    for i in 'hello world':
        print(i)
    

    range(n)

    产生一个可被循环的整数序列,默认序列的元素从 零 开始

    产生的元素数量是 n

    案例一:
    for i in range(5):
        print(i)
    案例二:
    for i in range(1,11):
        print('玫瑰:',i)
    

    break (只能跳出最近的循环或者迭代)和 continue

    for i in range(0, 10):
        print(i)
        if i < 3:
            inp_num = int(input(">>:").strip())
            # inp_num = int(inp_num)
            if inp_num == 15:
                print('You get it')
                break
            elif inp_num > 15:
                print("高了")
            else:
                print("低了")
        else:
            print("Game over")
            break
    
    
    for i in range(2, 10, 2):
        print("循环到", i)
        if i == 4:
            continue   //只终端这一条后续继续执行
        print(i)
        if i == 6:
            break
    
    

    range(开始索引号:结束索引号:步长)
    其道理和切片一样

    扩展知识

    for … else

    •1. 当 for 循环体正常执行完毕时,再执行一下 else 后面的代码

    •2. 当 执行了 break 后,就不再执行 else 后面的代码了

    for i in range(2):
        if i == 10:
            print('get it')
            n = i
            break
    else:
        print("Nothing")
    
    

    6. 猜数游戏

    要求:

    1. 提示用户输入一个数字 inp = input()
    2. 判断用户输入的值是否等于 18 == inp
    3. 允许用户尝试 3 次
    4. 假如 3 次机会都没有猜对,就再次提示用户是否继续
    5. 用户输出 y ,就再给 3 次机会。 输入 n 则退出游戏
    n = 0
    while n < 3:
        bef_n = n
        n += 1
        # 1.  提示用户输入一个数字 inp = input()
        num = input("输入数字:")
        # 2.  判断用户输入的值是否等于 18 == inp
        if not num.isdigit():
            print("请输入数字")
            n = bef_n
            continue
        num = int(num)
    
        if num == 18:
            print("猜对了")
        elif num > 18:
            print("大了")
        else:
            print("小了")
        # 3.  允许用户尝试 3 次
    # 4.  假如 3 次机会都没有猜对,就再次提示用户是否继续
        if n == 3:
            while True:
                inp = input("是否继续,[y:继续游戏, n:退出游戏]")
                if inp == 'y':
                    n = 0
                    break
                elif inp == 'n':
                    exit('退出游戏')
    
    

    相关文章

      网友评论

          本文标题:python3 ---数据类型 (2)

          本文链接:https://www.haomeiwen.com/subject/cypsvqtx.html