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. 2019CCPC秦皇岛自我反省&部分题解

    练了一年半了,第一次打CCPC,险些把队友坑了打铁,最后也是3题危险捡了块铜. 非常水的点双连通,我居然不相信自己去相信板子,唉,结果整来整去,本来半个小时能出的题,整到了3个小时,大失误呀,不然就可 ...

  2. java 面试心得总结-BAT、网易

    http://blog.csdn.net/sinat_26812289/article/details/50898693

  3. 早停!? earlystopping for keras

    为了获得性能良好的神经网络,网络定型过程中需要进行许多关于所用设置(超参数)的决策.超参数之一是定型周期(epoch)的数量:亦即应当完整遍历数据集多少次(一次为一个epoch)?如果epoch数量太 ...

  4. trie树(字典树)的部分简单实现

    什么是trie树(字典树)? trie树是一种用于快速检索的多叉树结构.和二叉查找树不同,在trie树中,每个结点上并非存储一个元素. trie树把要查找的关键词看作一个字符序列.并根据构成关键词字符 ...

  5. Python基础之range()

    range:指定范围,生成指定数字. 1. range() for i in range(1, 10): print(i) 执行结果为: 1 2 3 4 5 6 7 8 9 2. range()步长 ...

  6. Codeforces 1009 E. Intercity Travelling(计数)

    1009 E. Intercity Travelling 题意:一段路n个点,走i千米有对应的a[i]疲劳值.但是可以选择在除终点外的其余n-1个点休息,则下一个点开始,疲劳值从a[1]开始累加.休息 ...

  7. TypeScript 技巧

    前言 很早以前就尝试过使用 TypeScript 来进行日常编码,但自己对静态类型语言的了解并不深入,再加上 TypeScript 的类型系统有着一定的复杂度,因此感觉自己并没有发挥好这门语言的优势, ...

  8. PAT L2-001 紧急救援 —— (多参数最短路)

    和天梯中的直捣黄龙差不多.但是,通过这个问题,我对多参数最短路又有了更深一层的了解. 这题因为点数比较多,所以如果直接用大力学长的在G上dfs找最短路径的条数的话,会TLE,所以需要剪枝.剪枝方法是, ...

  9. Java中的<< 和 >> 和 >>> 分析理解

    Java中的<< 和 >> 和 >>> 详细分析 <<表示左移移,不分正负数,低位补0: 注:以下数据类型默认为byte-8位 左移时不管正负,低 ...

  10. Linux .bashrc

    Set environmental variable // 用:隔开 export PATH=$PATH:<PATH >:<PATH >:<PATH >:----- ...