• python入门到精通[二]:基础学习(1)


    摘要:Python基础学习: 注释、字符串操作、用户交互、流程控制、导入模块、文件操作、目录操作。

    上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法。代码部分需要保存到以.py结尾的文件,就可以进行测试了。这里主要介绍一些常用的语法,可能并不全面,后期再根据需要添加吧。

    1.编程风格

       缩进要统一  

      有种说法:python语言是"靠缩进控制代码的语言",的确如此。

    2.注释代码

       单行:#

       多行:'''

       代码:

    #!usr/bin/env python
    
    b='hello'
    c='world'
    #print '1' #注释掉此行,不打印1
    '''print b 
       print c''' #注释掉这两行,不打印hello world
    print 'ok'  #打印 ok

        结果:

    ok

    3.字符串操作

     3.1 输出多行字符串

      代码:

    #!usr/bin/env python
    
    a='''the first row,
    the second row,
    the third row!'''
    print a

      结果:

    the first row,
    the second row,
    the third row!

     3.2 去掉空格

       语法:s.strip(rm)    删除s字符串中开头、结尾处,位于 rm删除序列的字符

       代码:

    c='   hello world'
    print c.strip()

       结果:

    hello world

    3.3 计算字符串长度

       语法:len()

       代码:

    c='   hello world'
    print len(c)

       结果:

    14

    3.4 字符串转int

        代码:

    #!usr/bin/env python
    d = int('1')
    print 'values is:',d+2

         结果:

    value is: 3

    3.5参数化输出字符串

         代码:

    age=12;
    print 'you are',age,'years old!'

         结果:

    you are 12 years old!

    如果有多个参数,可以用%s输出

          代码:

    name = 'john'
    age=21
    print '''my name is:%s,
    i am %s years old!''' %(name,age)

          结果:

    my name is:john,
    i am 21 years old!

    4. 用户交互

         raw_input  符合用户输入的习惯,把任何用户输入都转换成字符串存储,在需要其它类型的数据时,调用相应的函数进行转换

         input    用户输入什么就存储什么,所以用户输入必须符合python语法要求,否则会出错

          代码:

    #!usr/bin/env python
    
    name=raw_input('please input your name:') #得到的是字符串
    age=input('please input your age:')   #得到的是数字
    print 'your name is %s and age is %s' % (name,age)

          结果:

    please input your name:john
    please input your age:22
    your name is john and age is 22

    5. 流程控制

     5.1 if...elif...else...

         代码:

    #!usr/bin/env python
    
    age = 18
    if age < 28:
        print 'too young!'
    elif age == 28:
        print 'right age!'
    else:
        print 'too old!'

        结果:

    too young!

      5.2while...true...

         代码:

    #!usr/bin/env python
    
    while True:
           name = raw_input("please input your name:").strip()
           if len(name) == 0:
               print "empty name!try again"
               continue;
           break

       结果:

    please input your name:
    empty name!try again
    please input your name:
    empty name!try again
    please input your name:john

    5.3 for...

       代码:

    for i in range(1,3):
        print i

        结果:

    1
    2

    5.4 for...else...

         在for循环完成后才执行else;如果中途从break跳出,则连else一起跳出。

         代码:

    #!usr/bin/env python
    
    #i不会>10,不走break,输出>10
    for i in range(1,10):
       if i>10:
          break;
    else:
        print '>10!'
    
    #i会>5,走break,不输出>5
    for i in range(1,10):
        if i>5:
          break;
    else:
         print '>5'

        结果:

    >10!

    6.导入模块

    导入模块有三种方式:

    1. import os
    2. from os import system
    3. import os as operasys

       代码:

    #!usr/bin/env python
    
    #直接导入os模块,调用linux系统命令
    import os
    os.system('df -h')
    
    #导入os模块的一部分,调用linux命令
    from os import system
    system('df -h')
    
    #导入os模块,并且重命名为operasys,调用linux命令
    import os as operasys
    operasys.system('df -h')

    以上三种方式,执行结果相同,都调用系统命令df -h显示磁盘使用情况。

    7.文件操作

      7.1创建

    f=file('contact_list.txt','w')    #'w'如果文件不存在,创建文件,存在则打开
    f.write('hello')
    f.close()

    创建一个contact_list.txt文件,文件内容为'hello'.

      7.2读取

    f=file('contact_list.txt')
    f.read() #读取一遍之后就没了,需要再次取值需保存到变量
    f.read([size]) #size为读取的长度,以byte为单位
    f.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分
    f.readlines([size]) #把文件的每一行作为一个list的一个成员,并返回这个list

       7.3追加

    f=file('contact_list.txt','a')
    f.write('hello')
    #f.flush()  #写日志的时候可以用这个
    f.close()  

      以上代码将'contact_list.txt'文件结尾追加内容'hello'.

      7.4位置

    f.tell() #返回文件操作标记的当前位置,以文件开头为原点
    f.next() #返回下一行,并将文件操作标记位移到下一行
    f.seek(offset[,whence]) #将文件的操作标记移到offset的位置。

       7.5内容替换

    #!usr/bin/env python
    
    import fileinput
    for line in fileinput.input('1.txt',inplace=1):#做完替换后,立刻回到文件的开始行
           line = line.replace('004','003')
           print line,#此行必须有,否则替换不成功  

        关于文件的open模式:
      w 以写模式打开
      a 以追加模式打开(从EOF开始,必要时创建新文件)
      r+ 以读写模式打开
      w+ 以读写模式打开 (参见w)
      a+ 以读写模式打开 (参见a)
      rb 以二进制读模式打开
      wb 以二进制写模式打开 (参见w)
      ab 以二进制追加模式打开 (参见a)
      rb+ 以二进制读写模式打开 (参见r+)
      wb+ 以二进制读写模式打开 (参见w+)
      ab+ 以二进制读写模式打开(参见a+)

    8.目录操作

         import os
         os.getcwd() #获取当前目录
         os.mkdir('file') 创建目录
         os.listdir('.') #返回指定目录下的所有文件和目录名
         os.remove() #删除目录下文件
         os.path.isfile() #检测路径是文件还是目录
         os.path.isdir() #检测路径是文件还是目录
         os.path.isabs() #判断是否是绝对路径
         os.path.exist() # 检验给出的路径是否真的存在

         os.path.split() #返回一个路径的目录名和文件名
         os.path.dirname() #返回一个路径的路径名
         os.path.basename() #返回一个路径的文件名

         os.rename(old,new) #目录重命名
         os.path.getsize(filename) #获取文件大小

         

  • 相关阅读:
    Vue.js $nextTick
    JS---函数名和变量名重名
    for循环中嵌套setTimeout,执行顺序和结果该如何理解?
    Rocket MQ整体简介
    ant Desgn Pro Vue 修改 title
    STS插件创建springboot项目,pom第一行报unkown错误
    c# 读取二进制文件并转换为 16 进制显示
    c# Winform 调用可执行 exe 文件
    按字节读取txt文件缓存区大小设置多少比较好?
    天翼云服务开放端口
  • 原文地址:https://www.cnblogs.com/wonglu/p/5291179.html
Copyright © 2020-2023  润新知