zoukankan      html  css  js  c++  java
  • Python 基础语法

    2017-06-24 09:50:14

    一、变量

    Python中的变量名的要求和C++基本一致

    (1)只能以字母或者下划线作为开头,不能以数字开头

    (2)标识符的其他部分可以有字母下滑线和数字组成,不允许有特殊字符出现如$等(c++中可以有$,且可以放在首位)

    (3)不允许有空格,不允许有-分割

    python 中只需要给变量赋值而不需要申明具体的数据类型,这是和c++有区别的地方

    id(): 得到变量地址

    eval(string s): 在内存中寻找 s这个变量名,有的话给出他的值

    二、判断语句利用冒号和缩进完成

    冒号必须要加上

    if xxxx:

    elif xxxx:

    else xxxx:

    #程序中出现中文会报错,需要加上coding=gbk

    需要注意的是python中是没有switch case语句的

    # coding=gbk
    # 出现了syntaxerror:non-utf-8 code 错误就是编码问题,需要加上 coding=gbk
    
    if name=="seu":
        print("东南大学")
    else:
        print("其他大学")
    name = input("请输入学校:")
    
    if name=="UCB":
        print("加州伯克利")
    else:
        print("其他大学")

    三、循环语句

    冒号必须要加上

    1、while ...:

    2、for...in:

    for..in是另外一个循环语句,它在一序列的对象上逐一使用队列中的每个项目。else部分是可选的。如果包含else,它总是在for循环结束后执行一次,除非遇到break语句。

    for i in range(1,5):
        print(i)
    else:
        print("循环结束")

    range()生成一个序列,前开后闭,第三个参数是步长,默认值为1

    四、运算符和表达式

    与c++不同的地方:

    1、乘法* 既可以表示两个数相乘,若是字符串乘以数字则是将字符串复制多次

    2、幂运算** a**b,表示a的b次幂

    3、与或非 用的是英文表示 and or not

    4、python不支持++ ,--等自增,自减操作

    优先级:

    五、函数

    def xxx(xxx,xxx):

    使用def关键字进行函数的声明,形参中可以存在有缺省值的存在,值得注意的是,和c++一致只能在末尾的参数有缺省值

    若要修改外部参数值,需要加上global关键字,告诉编译器这是外部参数。

    关键参数技术:即直接使用参数名进行赋值操作,避免了参数顺序,参数个数的问题,显得更加方便

    def fun(x,y=5,z=10):
       print("x =",x,"y =",y,"z =",z)
    fun(3,z=1)

    另外,可以使用return语句返回一个值,使用pass表示空语句

    六、文档字符串

    可以使用__doc__(注意双下划线)调用查看函数或者类中第一个未被赋值的字符串,一般用来解释函数的功能

    def fun(x,y=5,z=10):
       "这个函数的作用是输出三个数字。"
       print("x =",x,"y =",y,"z =",z)
    
    print(fun.__doc__)

    七、面向对象编程

    基本语法:

    class xxx:

      def fun(self):

        xxxx

    (1)python中的类中元素在默认情况下都是public的,若要将某个数据声明成私有数据,则要在数据声明时在名字前加上两个下划线,形如:__privateval。

    (2)public的数据不需要在函数外单独声明,只需要在__init__函数里加上就可以。

    (3)函数外声明的数据属于整个类所有,类似于c++里的static静态成员数据,调用也是使用类名加上成员访问操作符

    (4)类方法都必须加上self参数,这个和c++中的this指针是统一的,只不过必须要显示的表示出来

    (5)__del__析构函数,在对象结束生命期的时候自动调用,也可以使用del 函数显示调用,必须要有self

    (6)类初始化使用类名加上(),形如: p=xxx(xxx)

    (7)析构函数一般不用写,因为python有自动回收机制,如果 自己写的话有一点需要注意的是,如果析构函数中修改了类的数据成员需要同过self.__class__.xxx来进行修改,否则会报错。简单的理解就是析构是针对当前对象的析构,所以需要通过self来进行调用与修改。更深层的理解是由于python回收机制的问题,由于回收的不可控性,如果只写一个del,则会导致出错。如果将所有的对象都显示调用析构函数,则也不会出错。不过这样显然得不偿失。

    class Person:
        population=0
    
        def __init__(self,name):
            self.name=name
            Person.population+=1
        
        def show(self):
            print("目前的人口数是%d" %Person.population)
    
        def __del__(self):
            #写成Person.population-=1就会报错
            self.__class__.population-=1
            print("%s析构函数被执行了" %self.name)
    
    p1=Person("a")
    p2=Person("b")
    p1.show()
    del p1
    p2.show()

    面向对象中的继承操作:

    class Perdata:
    
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
        def show(self):
            print("姓名:%s 年龄:%d" %(self.name,self.age))
    
    class Tecdata(Perdata):
    
        def __init__(self,name,age,salary):
            #调用父类的初始化函数
            Perdata.__init__(self,name,age)
            self.salary=salary
    
        def show(self):
            #调用父类相应的函数
            Perdata.show(self)
            print("工资为%d" %self.salary)
    
    t=Tecdata("TIMHY",22,1)
    t.show()

    七、文件输入输出

    python中使用file类完成相关文件的输入和输出操作

    常用的函数:

    .open("路径",模式)

    .read() .readline() 读文件

    .write(xxx) 写文件

    模式‘r’(缺省模式) 读;‘w’ 写(若源文件里已经有内容,则清空从头开始写);‘a’ 结尾添加

    f=open("e:\\t.txt",'w')
    s='''hello world
    hello world
    hello world'''
    f.write(s)
    f.close()
    
    fin=open("e:/t.txt")
    line=fin.readline();
    while len(line)!=0:
        #把结尾的换行符去掉,因为读取时已经将换行符读取到了
        print(line,end='')
        line=fin.readline()

     贴一段按行读取csv文件并输出的程序,比c++不知道高到哪里去了。

    fin=open("C:/Users/YUAN/Desktop/ee.txt")
    fout=open("e:/ee.txt",'w')
    line=fin.readline().split(',');
    while len(line)==3:
        s=line[1]+" "+line[2]
        fout.writelines(s)
        line=fin.readline().split(',');
    fin.close();
    fout.close();

     由于读取文件有风险,可能打不开,所以一般需要进行try-except语句进行控制。不过机制的Python提供了with open(...) as f:语句可以非常可靠的打开文件

  • 相关阅读:
    求最短路径的三种算法: Ford, Dijkstra和Floyd
    Huffman树与编码
    Logistic回归模型和Python实现
    LibSVM for Python 使用
    支持向量机原理
    朴素贝叶斯分类器及Python实现
    Http协议简介
    介绍50个 WordPress 动作挂钩
    决定如何开发你的WordPress主题框架
    WordPress 主题框架是如何工作的
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/7072911.html
Copyright © 2011-2022 走看看