zoukankan      html  css  js  c++  java
  • 【02】Python:数据类型和运算符

    写在前面的话

    任何编程语言一开始都是从概念出发的,但各种编程语言之间的概念可能又会有差异,所以,老生常谈,我们还是需要从新过一遍 Python 的概念,当然,如果你已经是老司机了,完全可以一晃而过,不过老司机应该也不会再看这些基础。

    另外,编程一开始都是枯燥的,原因有两,一是没有成就感,二是茫然自己怎么把这些知识串联起来。所以,希望有幸看到这里的都能够静下心好好看下去,柳暗花明,需要的是时间。你也可以一蹴而就去看框架。可能比较聪明就能跟着做出一些东西出来。

    但是,那样的人终究是一只纸老虎,一开始很吓人,但慢慢的越来越笨批,因为本身基础没打好,如何建出高楼大厦,最多也就是海市蜃楼。

    这里顺便介绍一下计算机的程序和指令:

    计算机由运算器,控制器,存储器,输入设备,输出设备组成,运算器和控制器组成中央处理器,主要执行运算和控制指令处理数据。

    代码注释

    说明:所谓的注释,就是这一段内容在程序运行的时候不起作用,但是在我们查看代码的时候能给我清清楚楚说明这段代码的作用。

    注意:注释是代码之本,对你也好,对别人也好,没注释的代码就是垃圾,不管你写的多漂亮。

    在 Python 中,注意一般两种,单行注释和多行注释。

    单行注释:# 注释内容,井号

    多行注释:""" 注释内容 """,三个双引号

    我们一般在注释符号后面加个空格,这是 PEP8 的规范,也便于阅读。例如:

    # 这是一个单行注释
    
    """
    这是多行注释
    这是多行注释
    这是多行注释
    这是多行注释
    """

    在 Python 中有个特别的注释:

    # -*- coding: utf-8 -*-

    指定编码类型,写在 py 文件开始,推荐这句话成为大家以后写代码的规范。

    输出输入

    输出:之前我们使用了 hello world demo,然后打印输出了内容,这里通过实例详细讲讲 print 的用法:

    print('打印字符串:')
    print('hello world')
    print('打印逗号作为分隔符的多个内容:')
    print('My', 'name', 'is', 'Dylan', '!')
    print('打印数字:')
    print(100)
    print('打印算术:')
    print(100 + 100)
    print('打印字符串拼接:')
    print('100' + '100')
    print('打印多次:')
    print('A' * 10)

    打印结果如图:

    注意:如果两种不同类型的数据相 + 拼接,如 100 + '100',会报错:TypeError: can only concatenate str (not "int") to str

    输入:用户自己输入内容赋值给变量,并且能够被程序后面使用。

    my_name = input("Plz input your name:")
    print('My name is', my_name)

    结果:

    注意:input 输入的值都是字符串,如果你需要的并不是字符串,记得对值得类型就行转换 

    变量常量

    变量:存储数据的载体,计算机中变量实际是一块内存空间,能够被读取和修改。

    在 python 中,变量命名有如下规则:

    1. 数字,字母,下划线组成,不能字母开头。

    2. 区分大小写。

    3. 不用跟系统关键字同名,如:print

    这里顺便提一提 PEP8 规范,这是一个非常严格的规范,但是希望大家都能遵守:

    1. 小写字母组成,单词之间下划线连接。

    2. 受保护的实例属性单下划线开头,后面会说。

    3. 私有的实例属性使用双下划线开头,后面会说。

    4. 见名知义。

    例如:

    # 变量定义
    my_name = "Dylan"
    my_age = 25
    is_boy = True
    user_info = None
    
    # 变量引用
    print('My name is', my_name)
    print('My age is', my_age)
    print('You are boy:', is_boy)
    print('Desc:', user_info)

    结果: 

    常量:这里就一个特殊的,π,3.1415926

    数据类型

    我们这里只是简单的介绍一下数据类型:

    1. 整数:

    包括正整数,负整数,0。python 是可以处理任意大小的整数。

    2. 浮点数:

    也就是小数,但是包含科学计数法部分,如:1.2x10^10,有些地方也把 10 写成 e,如:1.2e10,0.0012 写成 1.2e-3。

    值得注意的是,在 Python 中,整数永远是精确的,但是小数可能是结果四舍五入而来。

    3. 字符串:

    单引号或者双引号括起来的任意文本 ,如:"abc"。

    当然,在字符串中有些特殊的,比如 (转义符),几种常见的转义符: 换行, 制表符,\ 符号本身

    不转义可以使用 r。如下实例:

    print('hello
    world')
    print('hello	world')
    print('\n\')
    print(r'hello
    world')

    结果:

    4. 布尔类型:

    至于两个 TrueFalse。可以用于判断,后面会用到。

    5. 空值:

    只有一个,None,注意 Node 不是 0。

    查看数据类型:type(变量)

    a = 'hello'
    print(type(a))

    结果:

    数据类型转换方法:

    方法作用
    int() 将一个数字或者本身是数字的字符串转换成整型
    float() 将字符串转换成小数
    str() 将指定对象转换成字符串
    chr() 将整数编码成对应的字符串,也就是返回在数字对应ASCII 表中的值
    ord() 将字符串(一个字符)转换成对应编码(整数),也就是返回字母返回在 ASCII 表中的数字

    示例:

    a = 3.1415926
    print(int(a))
    
    b = 3
    print(float(b))
    
    c = 123
    print(type(str(c)))
    
    d = 65
    print(chr(d))
    
    f = 'A'
    print(ord(f))

    结果:

    格式化输出

    我们只需要记住几个常用就是了:%d 整数占位符,%f 浮点数占位符,%s 字符串占位符,%x 十六进制整数

    和转义符 一样,% 的转义符就是 %,所以输出 % 就是 %%

    示例如下:

    # 单个占位符
    print('My name is %s' % 'Dylan')
    
    # 多个占位符
    print('My name is %s,age is %d!' % ('Dylan', 25))
    
    # 小数保留位数
    print('%.2f' % 3.1415926)
    
    # 右对齐指定位数,不够前面补充字符:
    print('%3d' % 2)
    print('%03d' % 2)
    
    # 左对齐
    print('%-5d#hello' % 2)
    
    # 百分比
    print('%d%%' % 10)

    结果:

    当然还有另外一种格式化方式,只是用的比较少:

    print('My name is {}, age is {}'.format('Dylan', 25))
    print('My name is {0}, age is {1}'.format('Dylan', 25))
    print('My name is {}, age is {age}'.format('Dylan', age=25))

    运算符

    参考如下表:

    运算符描述
    [数字] [:] 下标/切片
    ~ + - 按位与/正/负
    ** + - * / % // 幂/加/减/乘/除/取模/取整(算数运算符)
    >> << 右移/左移
    & 按位与
    > < >= <= == != 大于/小于/大于等于/小于等于/等于/不等于
    is/is not 身份运算符
    in/not in 成员运算符
    not/or/and 非/或/和(逻辑运算符)

    至于优先级,感兴趣的可以自己下去研究:( ) > not > and > or

    1. 算术运算符示例:

    # 算术运算符
    a = 3
    b = 5
    
    print(a + b)
    print(a - b)
    print(a * b)
    print(a / b)
    print(a % b)
    print(a // b)
    print(a ** b)

    结果:

    2. 比较运算符:

    # 比较运算符
    a = 3
    b = 5
    
    print(a > b)
    print(a < b)
    print(a >= b)
    print(a <= b)
    print(a == b)
    print(a != b)

    结果:

    3. 逻辑运算符:

    and:同真为真

    or:一真为真

    not:取反

    print(3 > 4 or 4 < 3 and 1 == 1)
    print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)

    结果:

    该例子仅供参考,如果你把逻辑以节写的这么复杂了,只能说明是垃圾代码。

    数值在逻辑比较时候:

    x or y,x 真,值 x,x 假,值 y

    x and y,x 真,值 y,x 假,值 x

    例如:

    print(0 or 4 and 3 or 7 or 9 and 6)

    结果为:3

    4. 成员关系运算符后面我们会单独在提! 

    练习示例

    【1】输入圆半径计算周长和面积:

    # 导入 pi
    from math import pi
    
    # 用户输入半径
    radius = float(input("请输入圆的半径:"))
    # 计算周长和面积
    cycle = 2 * pi * radius
    area = pi * radius * radius
    # 输出结果
    print("半径为 %.2f 的圆的周长为 %.2f,面积为 %.2f" % (radius, cycle, area))

    结果:

    【2】判断闰年和平年:

    # 用户输入年份
    year = int(input("请输入年份:"))
    # 判断闰年(现在没学 if,用上面的方法)
    is_leap = ((year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0))
    print("年份 %s 是否是闰年:%s" % (year, is_leap))

    结果:

    小结 

    这一节主要是 Python 基础中得基础,其中数据类型,运算符算是重中之重。输入可能在以后写代码得时候用得比较少,但是输出绝对不少。

    在群里之前总是有人在问代码除了问题,不知道怎么解决,工具就给他报个错,然后人就傻了。其实对于初学者最为直观的调试方法就是将有些步骤的结果通过 print 打印出来,看结果是否符合我们的预期。

    自然问题很多就得以解决。还有部分不能解决的,就可以结合 type 来检查,看类型是否正确。如果最后还不能解决,那问题可能就是你本身就写错了。 

  • 相关阅读:
    分析SIX锁和锁分区导致的死锁
    导数中的最小化日志记录:测试和分析
    导数中的最小化日志记录:背景和理论
    Redis学习笔记(十一) 服务器
    Redis学习笔记(十) 客户端
    Redis学习笔记(九) AOF持久化
    Redis学习笔记(八) RDB持久化
    Redis学习笔记(七) 数据库
    Redis学习笔记(六) 对象
    Redis学习笔记(五) 压缩列表
  • 原文地址:https://www.cnblogs.com/Dy1an/p/10845888.html
Copyright © 2011-2022 走看看