• Python基础语法(一)——变量定义和运算符的使用



    常量和表达式

    1. 简单引入

    我们可以先简单来看一下Python的加减乘除

    print(1 + 2 + 5)
    print(1 + 2 * 5)
    print(1 + 2 - 5)
    print(1 + 2 / 5)
    
    # 运行结果
    8
    11
    -2
    1.4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    我们发现加减乘和其它语言基本每区别,但是除法在其它语言比如 C/Java中整数除以整数结果还是整数,也就是小数部分会被截断,但是在Python中不会被截断,这样更符合人的日常计算的直觉

    • print 是一个 Python 内置的 函数
    • 可以使用 + - * / ( ) 等运算符进行算术运算. 先算乘除, 后算加减
    • 运算符和数字之间, 可以没有空格, 也可以有多个空格. 但是一般习惯上写一个空格(比较美观)

    2. 变量的命名规则

    1. 变量必须由数字、字母和下划线构成,不能包含其它特殊符号,且不能以数字开头
    2. 变量名不能和关键字冲突
    3. 在Python中,变量名是区分大小写的
    4. 变量命名建议使用驼峰命名法(除第一个单词其它单词第一个字母用大写),或者是蛇形名命名法(用下划线分割多个单词)
    userName = '驼峰命名法'
    user_name = "蛇形命名法"
    _test = 10
    
    • 1
    • 2
    • 3

    3. 变量的类型

    Python和C/Java不同,在定义变量的时候不需要显示的指定变量的类型,在赋值的时候自动就会确定类型

    1)整数

    tmp = 10
    print(type(tmp))
    # 运行结果
    <class 'int'>
    
    • 1
    • 2
    • 3
    • 4

    type是Python内置的函数,可以使用type来查看一个变量的类型
    注意:和C/Java等语言不同,Python的int类型变量,能表示的数据范围是没有上限的,只要内存足够,理论上可以表示无限大小的数

    tmp = 1234567891011121314
    print(tmp)
    
    • 1
    • 2

    因为Python的int是可以根据要表示的数据大小自动扩容,所以Python就没有像long、byte/short这些类型了

    2)浮点数

    tmp = 3.14
    print(type(tmp))
    # 运行结果
    <class 'float'>
    
    • 1
    • 2
    • 3
    • 4

    注意:和C/Java语言不同,Python的小数只有float一种类型,没有double类型,但是实际上python就相当于C/Java的double,表示的是双精度浮点数(占8个字节)

    3)字符串

    str1 = 'hello'
    str2 = "world"
    print(type(str1))
    print(str1)
    print(str2)
    # 运行结果
    <class 'str'>
    hello
    world
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在python中,字符串用单引号或者双引号引起来,这两者是每有啥区别

    但是出现了字符串中出现了单引号,就可以嵌套了

    str3 = "hello:'java'"
    str4 = 'hello: "python"'
    print(str3)
    print(str4)
    # 运行结果
    hello:'java'
    hello: "python"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在Python中还有一个三引号,里面可以包含单引号和双引号

    str3 = ''' test "hello:'java'"'''
    str4 = """ test "hello:'java' """
    print(str3)
    print(str4)
    # 运行结果
     test "hello:'java'"
     test "hello:'java' 
    str3 = "'''test '''"
    str4 = '""" test """'
    print(str3)
    print(str4)
    # 运行结果
    '''test '''
    """ test """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    求字符长度
    在Python中通过内置函数len求字符串的长度

    str1 = 'hello'
    str2 = "world"
    print(len(str1))
    print(len(str2))
    
    str3 = "'''test '''"
    str4 = '""" test """'
    print(len(str3))
    print(len(str4))
    # 运行结果
    5
    5
    11
    12
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    字符串拼接
    注意:在Python中只能字符串和字符进行拼接,拼接其它类型的变量会报错

    str1 = 'hello'
    str2 = "world"
    print(str1 + str2)
    print(str2 + str1)
    # 运行结果
    helloworld
    worldhello
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4)布尔类型

    布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假)

    a = True
    b = False
    print(type(a))
    print(type(b))
    # 运行结果
    <class 'bool'>
    <class 'bool'>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意事项
    如果拿布尔类型和整数或者浮点数类型进行运算那么,True表示1,False表示0.

    4. 动态类型特性

    在 Python 中, 一个变量是什么类型, 是可以在 “程序运行” 过程中发生变化的. 这个特性称为 “动态类型”

    tmp = 10
    print(type(tmp))
    tmp = 'test'
    print(type(tmp))
    tmp = False
    print(type(tmp))
    
    # 运行结果
    <class 'int'>
    <class 'str'>
    <class 'bool'>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5. 显示指定类型

    虽然在Python不用手动指定类型,但也可以显示的指定类型

    a: int = 10
    b: str = 'str'
    c: float = 3.14
    
    
    • 1
    • 2
    • 3
    • 4

    注释

    1. 行注释

    在Python中# 开头的行都是注释

    # 这是第一行注释
    # 这是第二行注释
    
    
    • 1
    • 2
    • 3

    2. 文档字符串

    使用三引号引起来的称为 “文档字符串”, 也可以视为是一种注释.

    • 可以包含多行内容,
    • 一般放在 文件/函数/类 的开头
    • “”" 或者 ‘’’ 均可 (等价)
    """
    这
    是
    多行注释
    """
    '''
    这
    也是多行注释
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    输入输出

    1.通过控制台输出

    前面已经说了使用Python内置函数print进行把数据输出到控制台

    number = 10
    tmp = False
    print(number)
    print(tmp)
    # 输出
    10
    False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    更多的时候, 我们希望能够输出的内容是混合了字符串和变量的

    示例

    name = '张三'
    age = 18
    print(f"name = {name}" f'age = {age}')
    
    # 运行结果
    name = 张三age = 18
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 使用 f 作为前缀的字符串, 称为 f-string
    • 里面可以使用 { } 来内嵌一个其他的变量/表达式

    2. 通过控制台输入

    python 使用 input 函数, 从控制台读取用户的输入

    tmp = input()
    print(tmp)
    
    • 1
    • 2

    或者有提示的输入

    name = input('请输入姓名:')
    age = input('请输入年龄:')
    print(f'name = {name}')
    print(f'age = {age}')
    # 运行结果
    请输入姓名:张三
    请输入年龄:18
    name = 张三
    age = 18
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • input 的参数相当于一个 “提示信息”, 也可以没有.
    • input 的返回值就是用户输入的内容. 是字符串类型

    因为输入数据,默认都是字符串类型的,如果需要就要进行强制类型zhuangh

    num1 = int(input("请输入第一个数字:"))
    num2 = int(input("请输入第二个数字:"))
    print(f'num1 + num2 = {num1 + num2}')
    
    • 1
    • 2
    • 3

    运算符

    1. 算数运算符

    在Python中有+ - * / % ** // 七种运算符

    注意事项1
    0是不能作为除数的,如果作为除数就会抛出异常

    print(5/0)
    
    • 1

    注意事项2:
    在Python中整数除以整数得到的结果可能会会是小数,因为不会发生截断

    print(9/4)
    # 执行结果
    2.25
    
    • 1
    • 2
    • 3

    注意事项3:
    在Python中 // 这个符号,等同于C/Java中的除号,就是整数除以整数就会得到整数,会发生截断

    print(9//4)
    运行结果
    2
    
    • 1
    • 2
    • 3

    注意事项4:
    **是次方的意思,比如 3**4 就表示的是 34,它也可以表示小数次方,比如 9**0.5 就表示为对9开方

    print(3**4)
    print(9**0.5)
    运行结果
    81
    3.0
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意事项5:
    正对负数取余,结果会是正数

    2. 关系运算符

    关系运算符就是用来比较两个操作数的大小是否相等的,<><=>===!=

    关系运算符返回的是布尔值,如果表达式为真就返回True如果表达式为假就返回False

    a = 10
    b = 15
    print(a > b)
    print(a < b)
    print(a >= b)
    print(a <= b)
    
    运行结果
    False
    True
    False
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    关系运算符不但可以针对数字进行比较,还能够比较字符串,可以比较字符相等

    a = 'hello'
    b = 'hello'
    print(a == b)
    运行结果
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5

    还可以比较字符串大小,比较字符串大小是通过字典序来比较的,首先看首字母在字母表上的顺序,谁小,谁就排在前面,如果首字母相同,就一次比较第二字母、第三个字母…

    a = 'abcd'
    b = 'abce'
    print(a > b)
    print(a < b)
    # 运行结果
    False
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意事项
    对于浮点数来说,使用 ==进行比较相等时存在一定的风险的,因为浮点数在内存中的存储和表示,是可能存在误差的,这样的误差在进行算数运算的时候就可能被放大,从而导致 ==的判断出现误判

    a = 0.1 + 0.2
    b = 0.3
    print(a == b)
    print(a)
    print(b)
    运行结果
    False
    0.30000000000000004
    0.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    对于浮点数正确的比较方式:就是不在严格比较相等,而是判定它的差值是否小于允许的误差范围以内

    a = 0.1 + 0.2
    b = 0.3
    print(-0.000001 < a-b < 0.000001)
    运行结果
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. 逻辑运算符

    在Python中逻辑运算符为and or not

    • and 并且:两端为True则为True,一端为False则为False
    • or 或者:两端都为False则为False,否则为True
    • not 逻辑取反:本身为True,取反为False,本身为False取反为True
    a = 10
    b = 20
    c = 30
    print(b > a and b > c)
    print(b > a or b > c)
    print(not a > b)
    运行结果
    False
    True
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Python一种特殊写法
    a < b and b < c 这个等价于a < b < c

    短路操作
    orand都有短路

    • and:如果前面为假后面的就不会再执行了
    • or:如果前面为真后面就不会再执行了
    a = 10
    b = 20
    c = 30
    print(b < a and 10/0)
    print(b > a or 10/0)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4. 赋值运算符

    链式赋值

    a = b = c = 10
    
    • 1

    多元赋值

    a, b, c = 10, 20, 30
    
    • 1

    示例:交换两个变量的值
    传统写法

    a = 10
    b = 20
    
    tmp = a
    a = b
    b = tmp
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    使用多远赋值

    a = 10
    b = 20
    a, b = b, a
    
    • 1
    • 2
    • 3

    注意:Python中不存在像 C/Java的++、–操作

    除了上述之外, Python 中还有一些运算符, 比如 身份运算符 (is, is not), 成员运算符 (in, not in), 位运算符
    ( & | ~ ^ << >>) 等


  • 相关阅读:
    ref属性
    Perl学习教程之单行命令详解
    二维码门楼牌管理系统技术服务:楼牌编设规则详解
    大数据开发工程师招聘要求高吗?
    为什么我们要选择甲方型IT研发型IT-因为这是一个正确价值观问题
    Git下载安装及环境配置,解决安装包下载慢问题(详细版)
    【综述精读】:Causal Inference in Recmmender Systems(因果推论在推荐系统中的应用)
    行为型设计模式---访问者模式
    二十七、商城 - 搜索解决方案-Solr(15)【1】
    第一百三十七回 WebView
  • 原文地址:https://blog.csdn.net/weixin_53946852/article/details/126752297