zoukankan      html  css  js  c++  java
  • ipython及Python初体验

    阅读目录:

    一、Python环境体验

    1、常见Python编辑器介绍

      1、在linux下使用vim

        编辑Python脚本时,推荐……没有道理……

      2、Eclipse

      3、notepad++:挺好用的一款编辑工具

      4、IDLE (官方自带)交互式的开发语言集成环境

      5、pycharm  第三方的工具:ipython

        学习、测试等常用ipython,很方便的编辑工具

      ……

    Q:ipython和python的区别?

    A:

      ipython集成了部分shell的功能,可以之间使用linux命令和tab补齐等小功能,记录输入命令的条数等人性化的功能,其实底层去解释python语句的时候,还是调用python的。

      ipython相当于python的一个解释器,交互工具。

    [root@python ~]# ipython
    Python 2.7.5 (default, Jun 17 2014, 18:11:42) 
    Type "copyright", "credits" or "license" for more information.
    
    IPython 3.2.1 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    In [1]: cd /etc
    /etc
    
    In [2]: pwd
    Out[2]: u'/etc'
    
    In [3]: pri
    print     printcap  
    
    In [3]: print "hello world"
    hello world

    ipython……对比……python

    [root@python ~]# python
    Python 2.7.5 (default, Jun 17 2014, 18:11:42) 
    [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> print "hello world"
    hello world
    >>> cd /etc
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'cd' is not defined
    >>> 

    2、安装ipython工具  

      融合部分linux基础命令且具备补齐功能,这补齐功能对于初学者还是很关键的,所以墙裂推荐安装使用。

    第一种方法:通过yum安装ipython

      需要有网络yum进行安装

      下载获取epel-release-7-5.noarch.rpm软件包

    [root@python yum.repos.d]# rpm -ivh epel-release-7-5.noarch.rpm
    [root@python yum.repos.d]# ls
    bak  epel.repo  local_yum.repo
    [root@python yum.repos.d]# yum install python-ipython-console

    第二种方法:通过pip安装ipython

      1、安装pip

      下载获取pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz压缩包

    [root@python lianxi]# tar -xf pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz
    [root@python lianxi]# cd pip-8.1.2
    [root@python pip-8.1.2]# ls |grep "py"
    setup.py
    [root@python pip-8.1.2]# python setup.py  build
    [root@python pip-8.1.2]# python setup.py install

      2、用pip安装ipython:pip需要连接网络进行安装ipython

        使用Python里的pip命令安装ipython(pip软件相当于linux里的yum)

    [root@python pip-8.1.2]# pip uninstall -y ipython  #卸载ipython(去除其他版本的ipython)
    [root@python pip-8.1.2]# pip install ipython==3.2.1  #安装ipython的3.2.1版本
    [root@python pip-8.1.2]# pip install psutil  #安装psutil,psutil(python 里的工具,查看cpu 内存...)
    [root@python pip-8.1.2]# python
    >>> import psutil  #将安装了的psutil导入到python中

     

    二、Python提示符

    >>>:你键入Python语句的主要提示符。

    …:Python语句的次要提示符。

     :续行符号

    #:注释符号,大段注释使用三个单引号’’’或者三个双引号”””

    [root@python lianxi]# vim first.py

    #!/usr/bin/python
    '''
    python
    …………
    zhangjiacai
    '''  #对引号中间的内容进行了多行注释
    #three sig_quotes to annotation
    print "come on to python"

    [root@python lianxi]# python first.py

    come on to python

     

    三、Python初体验

    1、print和变量

      Python2:print "Hello World"

      Python3:print("Hello World")

    [root@python lianxi]# python

    >>> name = "xiaoge"  #若不使用引号,xiaoge会被解析为一个变量
    >>> age=100  #定义数值变量可以不需要使用引号将内容引起来
    >>> name
    'xiaoge'
    >>> _   #上一次使用的变量的值
    'xiaoge'
    >>> print "hello world"  #字符串需要用单(双)引号引起来 hello world >>> print #使用反斜杆续行 ... 'hello' #在续的行里使用了次要提示符 hello

      #如同bash,已定义的变量可以直接调用使用

    >>> print "myname is",name,"my age is",age  #需要是用逗号分隔符
    myname is xiaoge my age is 100
    
    >>> print "myname is %s,my age is %d"%(name,age)  #推荐语法
    myname is xiaoge,my age is 100
    
    >>> print "myname is %s,my age is %d"%("xiaozhang",age)
    myname is xiaozhang,my age is 100

    解析:

      %s、%d相当于指定格式的占位符,前者代表string,后者代表数值变量。从%()中以逗号分隔的顺序取,且必须一一对应。

    >>> print "myname is %s,my age is %d"%("xiaozhang","jia")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: %d format: a number is required, not str

      类型错误:%d格式必须是一个数值而不是字符串。(因为类型不一样,所以要注意变量的顺序)

    2、变量操作

      1、type()查看变量类型的函数、len()统计string的长度

    >>> type(name)
    <type 'str'> 
    >>> type(age)
    <type 'int'> 
    
    >>> name = "zhangjiacai"
    >>> len(name)
    11
    >>> len("nihao")
    5

    注意:len()只能是用来查看字符串的长度

      2、变量类型转换:int()转换为整型的函数、str()转换为字符串类型的函数

    >>> a="123"
    >>> type(a)
    <type 'str'>
    >>> A=int(a) >>> type(A) <type 'int'> >>> b=456 >>> type(b) <type 'int'> >>> B=str(b) >>> type(B) <type 'str'>

    3、内建函数

      所谓内建函数,也就是一种内建的方法,方法就是实现某个功能的函数或者模块(一段实现某个功能的代码)

    >>> username = raw_input('please input login name:')
    please input login name:123
    
    >>> type(username)
    <type 'str'>
    
    >>> print 'Your login name is:',username
    Your login name is: 123

      raw_input:属于内建函数(功能类似与shell中的read),会将接收到的内容作为字符串类型处理

    Q:如何实现按任意键继续?

    A:raw_input('please press anything key to continue')

    python 编写脚本实现:

      1.提醒用户输入用户名和密码,然后显示出用户输入的用户名和密码

      2.输出用户名和密码的长度,如果密码长度低于6位给予提醒,密码太弱

    [root@python lianxi]# vim login.py

    #!/usr/bin/python
    #coding:utf-8
    u_name=raw_input("Please input username:")
    u_pin=raw_input("Please input password:")
    
    print "The length of username is",len(u_name),"the length of password is",len(u_pin)
    if len(u_pin)>6:
        print "The password is 安全"
    else:
        print "The password is dangerous"

    注意:

      python脚本程序中使用中文需要添加声明注释,如下:

      #-*-coding:UTF-8-*- 或者 #coding:utf-8

    [root@python lianxi]# python login.py
    Please input username:zhangjiacai
    Please input password:123456789   
    The length of username is 11 the length of password is 9
    The password is 安全
    
    [root@python lianxi]# python login.py
    Please input username:zhangjiacai
    Please input password:123456    
    The length of username is 11 the length of password is 6
    The password is dangerous

    4、数学运算

      1、简单算术实例

    >>> a=3
    >>> b=4
    >>> c=a*b
    >>> print c
    12
    >>> print 12*4
    48
    >>> print 23+25
    48
    >>> print 13+45*2-22
    81
    >>> 5 > 6
    False
    >>> b>a
    True
    >>> 8<9
    True

      2、随机数产生

    1> 随机整数:
    >>> import random  #导入模块(模块里包含了很多方法)
    >>> random.randint(0,99)
    22
    >>> random.randint(0,99)
    36
    
    2> 随机选取0到10之间的偶数:
    >>> import random
    >>> random.randrange(0,10,2)  #0到10之间的数,步长为2
    2
    >>> random.randrange(0,10,2)
    6
    
    3> 随机从指定的数中选取:
    >>> import random
    >>> random.choice([1,2,3,4])
    3
    >>> random.choice([1,2,3,4])
    4

    5、关于模块

      一个.py的文件(实现某些功能的一个文件),里面有很多方法(函数)--->库(library)

      因为模块的出现,使得python的使用变得轻松加愉快……

    例:sys模块,是python系统的相关功能

    In [1]: import sys
    
    In [2]: sys.path
    Out[2]: 
    ['',
     '/usr/bin',
     '/usr/lib/python2.7/site-packages/pip-8.1.2-py2.7.egg',
     '/usr/lib64/python27.zip',
     '/usr/lib64/python2.7',
     '/usr/lib64/python2.7/plat-linux2',
     '/usr/lib64/python2.7/lib-tk',
     '/usr/lib64/python2.7/lib-old',
     '/usr/lib64/python2.7/lib-dynload',
     '/usr/lib64/python2.7/site-packages',
     '/usr/lib/python2.7/site-packages',
     '/usr/lib/python2.7/site-packages/IPython/extensions',
     '/root/.ipython']

      sys.path变量(≈PATH变量):显示python模块情况下所有的模块存放的路径目录。

  • 相关阅读:
    Sqlserver的Transaction做Rollback的时候要小心(转载)
    注意Sqlserver中使用with(nolock)后实际上还是会加架构锁,只是不对要查询的数据加S锁而已(转载)
    为什么Sql Server的查询有时候第一次执行很慢,第二次,第三次执行就变快了
    Sql Server 中如果使用TransactionScope开启一个分布式事务,使用该事务两个并发的连接会互相死锁吗
    Css中路径data:image/png;base64的用法详解 (转载)
    android获取mp4视频文件总时长和视频宽高<转>
    “Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle)instead”
    android 除法运算保留小数点
    Directshow 采集音视频数据H264+AAC+rtmp效果还不错
    VS2010中将CString转换为const char*
  • 原文地址:https://www.cnblogs.com/geaozhang/p/6994731.html
Copyright © 2011-2022 走看看