Python 基础知识

Stella981
• 阅读 423

变量:

声明

            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__  魔法模块

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这