zoukankan      html  css  js  c++  java
  • python3基础1

    python是一种解释型语言

    编译型vs解释型

    编译型(C/C++/GO)优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

    解释型(Python/PHP/JavaScript)优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

    缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

    我的第一个python程序(hello world!)

    print("hello  world!")

    1、变量和字符编码

    • 声明变量

    a=1     #声明一个变量,变量名为:a, 变量a的值为:1
    • 变量定义的规则

      • 变量名只能是 字母、数字或下划线的任意组合

      • 变量名的第一个字符不能是数字

      • 以下关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

    • 变量的赋值

    name="xiaoming"
    name2=name
    print(name,name2)
    name="jack"
    print("name2:%s"% name2)
    print("name:%s"% name)
    ​
    
    输出为:(结果为什么是这样呢?)
    xiaoming xiaoming
    name2:xiaoming
    name:jack
    
    ​

    2、注释

    当行注视:# 被注释内容

    多行注释:""" 被注释内容 """

    3、用户的输入

    user=input("please enter your name:")
    print("hello "+user)
    输出结果:
    please enter your name:xiaoming
    
    hello xiaoming
    
     
    输入密码时,如果想要不见可以调用getpass模块中的getpass方法:
     
    import getpass
    usr = getpass.getuser()
    pwd = getpass.getpass("enter password for user %s: " % usr)
    print(usr, pwd)
    输出结果为:
    enter password for user XiaomengXu: 123
    
    XiaomengXu 123
    
     

    4、数据类型

    (1)数字

    • int(整型)

      • 在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647

      • 在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807

    • long(长整型)  

      跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

      注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

    • float(浮点型)

            先扫盲 http://www.cnblogs.com/alex3714/articles/5895848.html 

            浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

    • complex(复数)

      复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

    注:Python中存在小数字池:-5 ~ 257

    (2)布尔值

           真或假

      1 或 0

    (3)字符串

          "hello world"

    • 字符串的拼接

      python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,        +号每出现一次就会在内从中重新开辟一块空间。

           输出格式为:字符串%s,整数%d,浮点数%f

    (4)列表

    list1=['xiaoming','seven','jack']
    
    或
    list1=list(['xiaoming','seven','jack'])
    结果为:
    list1=['xiaoming','seven','jack']
    
    list1=list(['xiaoming','seven','jack'])

    (5)元组(不可变列表)

    age=(1,2,3,4,5)
    
    或
    age=tuple((1,2,3,4,5))
    输出结果为:
    
    (1, 2, 3, 4, 5)

    (6)字典(无序)

    student={"name":"xiaoming","age":18}
    
    或
    student=dict({"name":"xiaoming","age":18})
    输出结果为:
    
    {'age': 18, 'name': 'xiaoming'}

    5、数据运算

    以下假设变量:a=10,b=20:

    • 算数运算

    运算符描述示例
    + 加 - 两个对象相加 a + b 输出结果 30
    - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
    * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
    / 除 - x除以y b / a 输出结果 2
    % 取模 - 返回除法的余数 b % a 输出结果 0
    ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
    // 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
    • 比较运算

    运算符描述示例
    == 等于 - 比较对象是否相等 (a == b) 返回 False。
    != 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
    <> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
    > 大于 - 返回x是否大于y (a > b) 返回 False。
    < 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。
    >= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
    <= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。
    • 赋值运算

    运算符描述示例
    = 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
    += 加法赋值运算符 c += a 等效于 c = c + a
    -= 减法赋值运算符 c -= a 等效于 c = c - a
    *= 乘法赋值运算符 c *= a 等效于 c = c * a
    /= 除法赋值运算符 c /= a 等效于 c = c / a
    %= 取模赋值运算符 c %= a 等效于 c = c % a
    **= 幂赋值运算符 c = a 等效于 c = c a
    //= 取整除赋值运算符 c //= a 等效于 c = c // a
    • 逻辑运算

    运算符逻辑表达式描述示例
    and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
    or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
    not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
    • 成员运算

    运算符描述示例
    in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
    not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
    • 身份运算(用于比较两个对象的存储单元)

    运算符描述示例
    is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
    is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
    • 位运算

    运算符描述示例
    & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
    | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
    ^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
    ~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
    << 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
    >> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111
  • 相关阅读:
    数据库事务隔离级别-- 脏读、幻读、不可重复读
    【洛谷7518】[省选联考 2021 A/B 卷] 宝石(树上倍增+并查集)
    【CF666D】Chain Reaction(暴搜+细节讨论)
    【洛谷5064】[Ynoi2014] 等这场战争结束之后(操作树+值域分块)
    【洛谷7437】既见君子(状压+矩阵树定理)
    【洛谷5046】[Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块)
    【LOJ2462】「2018 集训队互测 Day 1」完美的集合(树上连通块问题+扩展卢卡斯)
    【洛谷4339】[ZJOI2018] 迷宫(神仙题)
    【CF639E】Bear and Paradox(贪心+二分)
    【洛谷5444】[APIO2019] 奇怪装置(数论)
  • 原文地址:https://www.cnblogs.com/pythonbigdata/p/8372621.html
Copyright © 2011-2022 走看看