1.输出和输入

(1)print打印

Python 提供print方法来打印信息

输入:

print ("hello python")

调用print方法,用户双引号(" ")把需要打印的信息引起来就被输出了。

输入:

name = "zhangsan"

print "Hello %s, nice to meet you!" %name

%s(string)只能打印字符串,如果想打印数字,那么就要使用%d(data)

输入:

age = 27

print "You are %d!" %age

如果不知道自己要打印的是什么类型的数据,那么可以用%r来表示

输入:

n = 100

print "Your print is %r." %n

n = "abc"

print "Your print is %r." %n

(2)input输入

input_demo.py

n = raw_input("Enter any content: ")
print "Your input is %s" %n

使用input()方法比较矫情,输入字符串一定要加引号,如果不加会报错,因此我们可以使用raw_input()方法,用户输入什么就是什么。

  1. 引号与注释

    Python中不区分单引号(' ')与双引号(" "),单双引号都可以表示一个字符串。

    print "hello"

    print 'world'

    可以嵌套使用,但不能交叉使用。

    Python的单注释用井号(#)表示。

    多行注释用三对引号表示,不分单、双引号。

    4.分支与循环

    (1)通过if语句来实现分支判断,一般语法为if...else...。

    输入:

    a = 2

    b = 3

    if a > b:

    print("a max!")

    else:

    print("b max!")

    Python中if语句通过"=="运算符判断相等,"!="判断不相等,"in"和"not in"表示包含的关系,还可以进行布尔类型的判断。
    输入:
    student = "xiaoming"
    if student == "xiaoming":
        print("xiaoming, you are on duty today.")
    else:
        print("Please call xiaoming to duty.")

    输入:
    hi = "hello world"
    if "hello" in hi:
        print("Contained")
    else:
        print("Not contained")

    输入:
    a = True
    if a:
        print("a is True")
    else:
        print("a is not True")

    if_demo.py

    # coding=utf-8
    results = 72
    if results >= 90:
    print('优秀')
    elif results >= 70:
    print('良好')
    elif results >= 60:
    print('及格')
    else:
    print('不及格')

  2. 循环一般用for语句。

    输入:

    for i in "Hello, world!":

    print(i)

    对字典进行遍历,输入:

    fruits = ['banana', 'apple', 'mango']

    for fruit in fruits:

    print(fruit)

    循环数字要借助range()函数。

    输入:

    for i in range(5):

    print(i)

    range(start,end,scan):start表示开始的位置,end表示结束的位置,scan表示每一次循环的步长。

    输入:

    for i in range(1, 10, 2):

    print(i)

    4.数组与字典

    (1)数组

    用中括号[]表示,里面的每一个元素用逗号(, )隔开。数组下标从0开始。

    输入:

    lists = [1, 2, 3, 'a', 5]

    lists

    lists[0]

    lists[4]

    lists[4] = 'b'

    lists[4]

    lists.append('c')

    lists

  3. 字典

    用花括号{}表示,里面的元素是成对出现的,一个key对应一个value;一对元素用冒号(: )分割;不同元素用逗号(,)分开。

    输入:

    dicts={"username": "zhangsan", 'password': 123456}

    dicts.keys()

    dicts.values()

    ['zhangsan', 123456]

    dicts.items()

    [('username', 'zhangsan'), ('password', 123456)]

    for k, v in dicts.items():

    print("dicts keys is %r " %k)

    print("dicts values is %r " %v)

    字典里的每一对元素准确的来说是键值对,一个键(key)对应一个值(value)。Keys()函数可以输出所有键的值;values()函数可以输出所有值的值;items()函数输出一对键值对的值。

    5.函数与类、方法

    (1)函数

    在python当中通过def关键字来定义函数,下面来定义一个函数.

    输入:

    def add(a, b):

    print(a + b)

    add(3, 5)

    创建一个add(),这个函数接收两个参数a、b,通过print打印a+b的结果。通常情况下,函数不会直接打印结果,而是将处理结果通过return关键字返回。

    输入:

    def add(a, b):

    return a + b

    add(3, 5)

    有时候调用add()函数的时候不想传参,可以为函数设置默认参数。

    输入:

    def add(a = 6, b = 7):

    return a + b

    add()

    add(3, 5)

    (2)类与方法

    在Python中用class关键字来创建类。

    class_test1.py

    class A(object):
    def add(self, a, b):
    return a + b

    count = A()
    print count.add(3, 5)

    创建了一个A()类,在类下面创建了一个add()方法。方法创建同样适用关键字def,唯一不同的是方法必须有一个且必须是第一默认参数self,但是这个参数不用传值。

    一般在创建类时首先会声明初始化方法__int__()。

    class_test2.py

    class A():
    def __init__(self, a, b):
    self.a = int(a)
    self.b = int(b)
    def add(self):
    return self.a + self.b

    count = A('4', 5)
    print count.add()

    调用A类时首先执行__int__()方法,所以需要对其进行传参。初始化就是将输入的参数类型转化为int类型。add()方法直接对初始化得到的self.a和self.b进行计算,因此在调用A类下add()方法时不需要再进行传参。

    类的继承——class_test3.py

    class A():
    def add(self, a, b):
    return a + b

    class B(A):
    def sub(self, a, b):
    return a - b

    print B().add(4, 5)

    因为B类继承了A类,所以B类也拥有了add()方法,可以直接通过B类调用add()方法

    6.模组

    (1)引用模块

    在Python语言中通过import...或from...import...的方式引用模块,下面引用time模块。

    imp1.py

    import time
    print time.ctime()

    如果只用到time模块下面的ctime()方法,可以这样使用:

    imp2.py

    from time import ctime
    print ctime()

    [python] view plain copy 在CODE上查看代码片派生到我的代码片

    from time import ctime

    print ctime()

    一次性把time模块下面的所有方法都引进来:

    imp3.py

    #coding=utf-8
    from time import *
    print ctime()
    print "休息一两秒"
    sleep(2)
    print ctime()

    (2)模块调用

    我们可以自己创建一个模块,然后通过另一个程序调用。

    创建一个目录(project1),在目录下面创建两个文件:pub.py和count.py,在pub.py中创建一个add()函数。

    project1\pub.py

    def add(a, b):
    return a + b

    project1\count.py

    from pub import add
    print add(4, 5)

    这样就实现了跨文件的函数调用。

    知识延伸:

    在project1目录下面多了一个pub.pyc文件,pyc文件是一种二进制文件,是由py文件经过编译后生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,由python的虚拟机来执行。

    (3)跨目录模块调用

    调用文件和被调用的文件不在同一目录下面,调用目录如下:

    ----project2/model/pub.py

    ----project2/count.py

    project2\count.py

    import sys
    sys.path.append('.\model')
    from model import pub
    print pub.add(3, 5)

    调用sys模块,把model目录通过append()方法追加到系统环境变量path下面。注意,".\model"是一个相对路径,如果pub.py在别的目录下面,就需要用绝对路径了,如:append(r"D:\\project\\model")

    在model目录下面创建一个__init__.py的文件,内容可以为空。这个文件告诉python model是一个可以被调用的模块。现在就可以正常运行了。

    运行count.py:

    (4)进一步讨论跨目录模块调用

    下面进行多个文件跨目录之间的调用。在project3目录下放入test.py,project3\model子目录下面放入count.py、new_count.py。

    model/count.py

    class A():
    def add(self, a, b):
    return a + b

    model/new_count.py

    from count import A
    class B(A):
    def sub(self,a, b):
    return a - b

    resule = B().add(2, 5)
    print resule

    运行new_count.py:

    在model目录下面创建一个为空的__init__.py的文件。

    test.py

    import sys
    sys.path.append('.\model')
    from model import new_count

    test = new_count.B()
    test.add(2, 5)

    运行输出如下:

    7.异常

    Python用异常对象(exception object)来表示异常情况。遇到错误后,会引发异常。如果异常对象未被处理或捕捉,程序会用所谓的回溯(Traceback,一种错误信息)终止执行。

  4. 认识异常

    Python提供try..except..语句来接收这个异常。

    输入:open("abc.txt",'r')

    抛出一个IOError异常。

    abnormal1.py

    # coding=utf-8
    try:
    open("abc.txt",'r')
    except IOError:
    print "异常了!"

    abnormal2.py

    # coding=utf-8
    try:
    print(aa)
    except IOError:
    print "异常了!"

    运行报错:

    抛出一个NameError异常,如下修改该程序。

    abnormal3.py

    # coding=utf-8
    try:
    print(aa)
    except NameError:
    print "这是一个name异常!"

    在python中所有的异常都继承Exception,所以可以用它来接收所有的异常。

    abnormal4.py

    # coding=utf-8
    try:
    open("abc.txt",'r')
    except Exception:
    print "异常了!"

    从python2.5版本之后,所有异常类有了新的基类BaseException,Exception同样也继承BaseException,所以我们也可以使用BaseException来接收所有的异常。

    Python直接输出异常信息:

    abnormal5.py

    # coding=utf-8
    try:
    open("abc.txt",'r')
    print(aa)
    except BaseException:
    print "异常了

    在BaseException后面可以定义msg变量用于接收异常信息,通过print将其打印出来:

    abnormal6.py

    # coding=utf-8
    try:
    open("abc.txt",'r')
    print(aa)
    except BaseException as msg:
    print msg

    Python中常见的异常:

    BaseException 新的所有异常类的基类

    Exception 所有异常类的基类,但继承BaseException 类

    AssertionError assert 语句失败

    AttributeError 试图访问一个对象没有属性

    IOError 输入输出异常,试图打一个不存的文件(包括其它情况)时引起

    NameError 使用一个还未赋值对象的变量

    IndexError 在使用序列中不存在的所引进引发

    IndentationError 语法错误,代码没有正确的对齐

    KeyboardInterrupt Ctrl+C 被按下,程序被强行终止

    TypeError 传入的对象类型与要求不符

    SyntaxError Python 代码逻辑语法出错,不能执行

    (2)更多异常用法

    try...except 与else 配合使用:

    abnormal7.py

    # coding=utf-8
    try:
    print(aa)
    except Exception as msg:
    print msg
    else:
    print ("没有异常")

    else语句只有在没有异常的情况下才会被执行,但是有些情况下不管是否出现异常这些操作都能被执行,比如文件的关闭,所得释放,把数据库连接返还给连接池等操作。我们可以使用try…finally..语句来完成。

    abnormal8.py

    # coding=utf-8
    try:
    print(aa)
    except Exception as e:
    print e
    finally:
    print ("不管是否异常,我都会执行。")

    修改代码,定义变量aa,如下:

    abnormal9.py

    # coding=utf-8
    try:
    aa = "异常测试:"
    print
    (aa)
    except Exception as e:
    print e
    finally:
    print ("不管是否异常,我都会执行。")

    (3)抛出异常

    Python中提供raise方法来抛出一个异常。

    abnormal10.py

    # coding=utf-8
    from random import randint
    #生成一个1到9之间的随机整数
    number = randint(1,9)

    if number % 2 == 0:
    raise NameError("%d is even" % number)
    else:
    raise NameError("%d is odd" % number)

03 Python基础的更多相关文章

  1. Day 03 Python 基础

    目录 Pycharm 的使用 设置 快捷键 变量 什么是变量 定义变量 变量名的命名规则 变量名的两种命名方式 注释 快捷键(快速注释) 单行注释 多行注释 注释的作用 Turtle库的使用 Pych ...

  2. 03 python基础作业(一)

    1.将['alex','eric',’rain’]用下划线拼接成字符串.(['alex','eric',123]呢?) li=['alex','eric','rain'] v='_'.join(li) ...

  3. python基础——错误处理

    python基础——错误处理 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数 ...

  4. python基础——获取对象信息

    python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...

  5. python基础——使用模块

    python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

  6. Python 基础练习

    今天接触了python,了解了一下 python 的基础语法,于是想着手训练一下,在本习题集中,参考代码为提供的参考答案,前面的代码为自己思考的代码,最后每道题给出练习的时间. Python 基础练习 ...

  7. 第一篇:python基础

    python基础   python基础 本节内容 python起源 python的发展史 为什么选择python3 第一个python程序 变量定义 表达式和运算符 用户输入 流程控制 判断 流程控制 ...

  8. Day3 - Python基础3 函数、递归、内置函数

    Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...

  9. python基础教程

    转自:http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html Python快速教程 作者:Vamei 出处:http://www.cn ...

随机推荐

  1. Cogs 734. [网络流24题] 方格取数问题(最大闭合子图)

    [网络流24题] 方格取数问题 ★★☆ 输入文件:grid.in 输出文件:grid.out 简单对比 时间限制:1 s 内存限制:128 MB «问题描述: 在一个有m*n 个方格的棋盘中,每个方格 ...

  2. codeforces#1187E. Tree Painting(树换根)

    题目链接: http://codeforces.com/contest/1187/problem/E 题意: 给出一颗树,找到一个根节点,使所有节点的子节点数之和最大 数据范围: $2 \le n \ ...

  3. mybatis中的foreach条件参数过多时,#和$效率比较

    在客户端查询都小于1秒. 测试: mybatis中in条件12.3万数据$ : 6051 ms# : 27045 ms 1.2万数据$ : 1154 ms# : 24387 ms 5 万数据$ : 2 ...

  4. async for 在爬虫中的使用例子

    import asyncio import re import typing from concurrent.futures import Executor, ThreadPoolExecutor f ...

  5. Linux dd烧写系统

    虽然用dd指令烧写系统很简单,但是久而久之忘得也太快了,赶紧整理一下. .img 系统镜像 .iso U盘启动引导文件 1. 先来查看本机磁盘情况,打开Linux终端界面(快捷键Ctrl + Alt ...

  6. decimal模块 --数字的精度、保留小数位数、取整问题

    开始之前需要注意一点是:精度值为数字的总位数,如:1.23, 精度值为3: 0.123,精度值也为3 1.更改默认精度值后,直接进行计算即可保留对应精度值 from decimal import ge ...

  7. How to get full path of StreamWriter

     How to get full path of StreamWriter   In my version of the framework, this seems to work: string f ...

  8. mysql 首次安装后 简单操作与语句 新手入门

    首先cd到安装目录中bin路径:这是我的安装路径以管理员身份打开cmd(防止权限不足)cd E:\>cd E:\mysql\mysql-5.5.40-winx64\bin 首次安装需要输入 my ...

  9. Rsa加密类

    需要导入Base64.jar包 import java.io.ByteArrayOutputStream; import java.security.Key; import java.security ...

  10. 纯CSS,table的thead固定,tbody显示滚动条

    以下代码,仅在谷歌下测试过 首先是html的table的代码: <table class="tablediv" id="myTable" border=& ...