Python 基础知识

原创
2016/10/12 14:40
阅读数 35

变量:

     声明

            x = 3

            非常简单  不用加 var  $  后面也不用跟 ;

        

    注意 在使用变量的时候一定要为他赋值 否则会爆未定义错误

    

    print打印多个表达式 可以使用 逗号 输出  

        print 'age' , 42

 

序列解包

        x,y,z = 1,2,3

        print x,y,z

    交换变量

        x,y = y,x

 

链式赋值

    x = y = fun()

    相当于 y = fun()  x = y  

    不是  y = fun()  x = fun()

 

 

高级表达式

    x is y           x和y是一个对象吗

    x is not y     x和y不是一个对象吗

    x in y           x 是 y 的成员

    x not in y     x不是y的成员

 

断言  assert

    如果需要程序某一个条件一定为真才能让程序正常执行 那么就可以用断言

 

获取所有自定义变量

    内置函数 vars() 可以获取所有当前作用域的变量

    但是如果在函数里面有定义变量 a 再想获取外部的变量 a 可以通过 globals()['a'] 来获取外部变量

 

 

 

 

 

语句:

    for ....else

    例子

        for i in range(0):

                print i

        else

            print 'end'

    for循环会在结束后运行else语句

 

    列表式推到 ---- 轻量级循环

    [x*x for x in range(10)]

    [x*x for x in range(10) if x %3 == 0]

 

    如果有个语句块什么事情都不做 用pass 做占位符

    

    如果有些变量对象 不需要用了 可以用 del 删除

    

    有时候需要动态的执行python语句 可以用 exec 或者 eval 但是需要谨慎

        exec "print 'hello'"   

    类似求值  exec语句会执行一系列python语句 而 eval会计算python表达式 并且返回结果值

        eval 

    exec  eval 尽量用命名空间包裹

 

 

 

 

 

数学:

    1 / 2 = 0

    1/ 2.0 = 0.5 

    如果想要得到小数 必须除数和被除数之间有个事小数

 

    幂运算

      2 ** 3  = 8

 

    后面加个L 是长整形  100000000000000000000000L

 

    进制

        0xAF  十六进制 175

        010     八进制   8  

 

     数学模块自带的函数

        match.floor()   向下取整     33.9   ===》 33.0

        match.ceil()   向上取整       33.1    ===》 34.0

        match.sqrt()   计算平方根       

       (函数)round  四舍五入最近的数

       (函数)abs()  取绝对值  

       (函数)long() 转为长整数

      (函数)float()  转为浮点数

 

    nan 是一个特殊值的简写  意思是 “not number ” 非数值

 

 

基础:

    获取用户输入

        x = input("input:")

         input会根据用户的输入来做类型的转换, 比较严格必须是 合法的python类型 如果不输入会报错

 

    获取用户的输入

        x = raw_input("input:")

            raw_input 则会把用户的输入都作为一个字符串来处理  就算什么都不输入 也不报错

 

 

    linux下直接运行脚本  第一行加上

    #!/usr/bin/env  python  

 

    注释

        单行注释用   #

 

 

字符串:

  •     python单引号双引号没区别
  •     我们用  \ 来转义字符
  •     “aaa” "bbb"  两个字符串可以用空格连接
  •     “aaa” + "bbbb" 也可以用加号连接
  •       r'aaaa\t'  字符串前面加r表示输出原始字符串 不会被转义
  •      "aaaaa" + 100 这样是不对的字符串不可以和数字相加

 

  •       如果要编写一个非常长的字符串 可以用 ''' 来代替普通的引号 这样就能跨越很多行了

            也可以用三个双引号  """

 

  •      普通字符如果想实现多行输入 可以在末尾加个 \ 

      print   "aaaaaa \    

            bbbbb"     

  

  •      如果想在python字符串中输入 \  可以用两个 \ 来表示 比如 “aaaaa \\  aaaa”

               但是如果不想这样 可以使用原始字符串

                print r"sdfsdfsfsdf \  sdfsdfsd "  这样就不会转义字符串了 但是这样一来原始字符串也不支持 \                   的方式换行

    

 

    

    python 3.X 之前 python默认字符串编码是8位的ASCII码,所以默认不支持中文 也不支持 unicode  如果要输出中文 要在头部加上

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

 

   python 2.X 如果想输出unicode 字符串 使用前缀 u    u'sdfdsfsdfsdfdsf'

 

 

    str() 函数把接收的参数转换成字符串   值是给人看的   可读性很好 但是不能传给eval

    repr()  接收到的参数 放到一个新创建的字符串里并显示  值是给python看的 直接就是格式好的字符串

       

  

 

模块:

    可以把模块想象成导入到python以增强其功能的扩展,需要使用特殊的命令 import 来导入模块,

    

     例子:

            import math

            math.floor(32.9)

    注意她怎么起的作用 用import导入的模块  用 模块.函数 格式来使用这个模块的函数

    

    或者

        from somemodule import *

 

    可以给导入的模块加个别名

        import math as fuck

        fuck.floor(33.1)

 

    在确定自己不会导入多个同名函数(从不同大模块)情况下,可以只导入模块下的某个函数

       from  math  import sqrt

        sqrt(9)  这样就可以直接使用函数  而不用使用 模块.函数

    

     可以给导入的函数加个别名

        from math import ceil  as fuck

            fuck(33.1)

 

     事实上,可以使用变量引用函数 (或者python中的大多数对象)比如通过foo=math.sqrt 进行赋值 然后就可以使用foo()

 

 

__future__  魔法模块

 

 

展开阅读全文
打赏
0
0 收藏
分享

作者的其它热门文章

加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部