python 学习

vi hello.py

#!/usr/bin/env python

print('hello word')

while True:

  print('hello word')

python(进入python)

import hello (导入hello模块)

会生成pyc 文件, 编译器产生的文件, 用C语言继续执行

1.编程风格

  1.python 缩进统一

  2.变量(第一个字符必须是字母或_,可以有子母,_和数字组成)

  3.运算: 1+1/2*3-5   2**6   3>5

  4.赋值 first_name = 'sivan'   age = 27    next_year_age = age +1   user_name = first_name + ding

  5. 引号 : python 里面不区分单引号和双引号

  6.注释: 单行注释:#hello word!   多行注释:''' this is first time to be here '''

2.导入模块:导入模块的三种形式

  import moduleName  #导入模块

  form module import sayhi #导入方法

  import moduleName as newName #将导入的模块更名

3.用户交互input ()

  1.name = input('please input your name:').strip()

  2.格式化输出

      message = ''' Information of the company staff:

                 Name : %s
      age : %d
      Sex : %s
      Dep : %s
      ''' % (name,age,sex,dep)
      print(message

4.流程控制

  1. if exp:...elif exp:... else:...

  2.for i in reage(10):

  3.while True:

  break

  continue

  作业:

    编写可供用户查询接口

    提供格式化查询接口

    允许用户添加或删除员工信息

5.文件处理

  python 中对文件处理需要涉及到os模块和shutil模块

  得到当前工作路径:os.getcwd()

  获取指定目录下的所有文件和目录名:os.listdir(dir)

  删除文件:os.remove(file)

  删除多个目录:os.removedirs(r/'home')

  检测路径是否为文件:os.path.isfile(path)

  检测路径是否为目录:os.path.isdir(path)

  检测是否为绝对路径:os.path.isabs(path)

  判断路径是否存在:os.path.exists(path)

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

  分离扩展名:os.path.splitext(file)

  获取路径名:os.path.dirname(file)

  获取文件名:os.path.basename(file)

  运行shell命令:os.system(command)

  读取和设置环境变量:os.getenv()与os.putenv()

  给出当前平台的行终止符:os.linesep()(windows为\r\n,linux为\n,Max为\r)

  指示你正在使用的平台:os.name(windows 为nt, linux为posix)

  重命名:os.rename(old, new)

  创建多级目录:os.makedirs(r'c:\python\test')

  创建单个目录:os.mkdir('test')

  获取文件的属性:os.stat(file)

  修改文件权限与实践戳:os.chmod(file)

  终止当前进程: os.exit()

  获取文件大小:os.path.getsize(filename)

  文件操作:

    文件内容替换

      for line in fileinput.input('filepath',inplace=1):

        line = line.replace('oldtext','newtext')

        print(line)

    os.mknod('text.txt') 创建空文件

    fp = open('text.txt','w') 直接打开一个文件, 如果不存在则创建文件

    关于open模式:

      w 以写的方式打开(如果文件存在会清空文件内容)
      a 以追加的模式打开(从EOF开始,必要时创建新文件)
      r+ 以读写模式打开
      w+ 以读写模式打开(参见w)
      a+ 以读写模式打开(参见a)
      rb 以二进制模式打开
      wb 以二进制模式打开(参见w)
      ab 以二进制追加模式打开(参见a)
      rb+ 以二进制读写模式打开(参见r+)
      wb+ 以二进制读写模式打开(参见w+)
      ab+ 以二进制读写模式打开(参见a+)

    fp.read([size]) #size读取长度, 以byte为单位

    fp.readline([size]) #读一行, 如果定义了size, 有可能返回的只是一行的部分

    fp.readlines([size]) #把文件每一行作为一个list的一个成员, 并返回这个list其他内容是通过循环调用readline()实现的,如果提供size参数,size表示读取内容的总长,也就是说可能只读到文件的一部分

    fp.write(str) #把str写到文件中, write()并不会再str后加上一个换行符

    fp.writelines(seq) #把seq内容全部写到文件中(多行一次性写入),不会加任何东西

    fp.close()#关闭文件。python会在一个文件不用后自动关闭, 不过这一功能没有保证

    fp.flush() #把缓冲区的内容写入磁盘

    fp.fileno()#返回一个长整形的文件磁盘

    fp.isatty()#文件是否是一个终端设备文件

    fp.tell()#返回文件操作标记的当前文章, 以文件的开头为原点

    fp.next() #返回下一行, 并将文件操作标记位移到下一行

    fp.seek(offset[,whence])#将问价操作标记移到offset的位置, 这个offset一般是相对于文件的开头来计算的,一般为正数,但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算,2表示以文件末尾为原点计算。需要注意,如果文件以a或a+模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾

    fp.truncate([size]) #把文件裁成规定的大小, 默认的是裁到当前文件操作标记的位置

 

  

  目录操作:

    os.mkdir('file')  #创建目录

    shutil.copyfile('oldfile','newfile') #oldfile和newfile只能是文件

    shutil.copy('oldfile', 'newfile') #oldfile只能是文件夹, newfile 可以是文件或者是目录

    shutil.copytree('olddir', 'newdir') #复制文件夹, newdir必须不存在

    os.rename('oldname', 'newname') #重命名文件或者文件夹

    shutil.move('oldpos', 'newpos') #移动文件或目录

    os.remove('file')#删除文件

    os.rmdir('dir')#只能删除空目录

    shutil.rmtree('dir') #有内容或空目录都可以删

    os.chdir('path') #换径路

6.列表(可重复, 可修改)

  语法:shoppinglist = ['car','clothes','book']

  添加: shopinglist.append(100)

  插入:shoppinglist.insert(2, 'apple')

  修改:shoppinglist[2] = 'plane'

  求大小:len(shoppinglist)

  删除元素:shoppinglist.pop(3)

  删除元素:shoppinglist.remove('apple')

  排序:shoppinglist.sort()

  倒序:shoppinglist.reverse()

  统计:shoppinglist.count('car')

  获取位置:shoppinglist.index('apple')

  列表的切片:a = [1,2,3,4,5]

    a[1] #2
    a[1:] #2,3,4,5
    a[:1] #1
    a[:-1] #1,2,3,4
  字符串变成列表:
    a='A B C = * 8 3 5 + 23 45'
    a.split()
    a.split('=')

  

7.元组(可重复,无法修改)
  语法:namelist=('a','b','c')
  统计:namelist.count('a')
  获取位置:namelist.index('b')

  练习:
  让用户输入工资
  输出购物菜单及产品价格
  计算用户是否可支付
  输出用户剩余的钱,问用户是否继续购物,如果选择继续,继续进行,直到钱不够
  如果不够,输出用户还需工作多久才能买的起

8.字典
  语法:DicName = {"banana":"4","orange":"3.8"}
  查看key:DicName.keys()
  查看value:DicName.values()
  添加:DicName['apple']='5'
  删除:DicName.popitem() #默认删除第一个
  删除:del DicName['banana']
  修改:DicName['orange']='3'
  查询:DicName.has_key('orange')
  遍历:for k,v in DicName.items():print k,v

  (' '.join(v) 把列表v转换为字符串并以空格分隔)


  练习:
  创建公司员工信息表,员工号,姓名,邮件,部门,职位,手机
  提供用户查询接口,通过员工号查询用户信息

python基础 [Alex视频]

vi hello.py
#!/usr/bin/env python
print "hello world!"
while True:
print("hello world!")


python(进入python)
import hello(导入hello模块)
会生成pyc文件,编译器产生的文件,用c语言继续执行


1.编程风格
1.1python缩进统一
1.2变量(第一个字符必须是字母或_,可有字母,_和数字组成,大小写敏感)
1.3运算
1+1/2*3-5
2**6
3>5
A<=B
1.4赋值
first_name = 'Alex'
Age = 27
next_year_age = Age + 1
user_name = first_name + 'Woo'
1.5引号(注释)
'hello world!'
"Hello,My name's Bruce Woo"
'''Hello,My name's Bruce Woo,
This is my first time to be here
What's your name?
'''


2.导入模块
import moduleName #导入模块
from module import sayHi #导入方法
import moduleName as newName


3.用户交互raw_input()
3.1raw_input
name = raw_input('please input your name:').strip()
age = int(raw_input("input your age:"))
sex = raw_input("input your sex:")
3.2格式化输出
message = ''' Information of the company staff:
Name : %s
age : %d
Sex : %s
Dep : %s
''' % (name,age,sex,dep)
print message

 

4.流程控制
4.1 if exp:...elif exp:...else:...
4.2 for i in range(1,100)
4.3 While True:
break
continue

作业:
编写可供用户查询的员工信息表!
提供格式化查询接口
允许用户添加或删除员工信息

 

5.文件处理
python中对文件处理需要涉及到os模块和shutil模块
得到当前工作目录路径:os.getcwd()
获取指定目录下的所有文件和目录名:os.listdir(dir)
删除文件:os.remove(file)
删除多个目录:os.removedirs(r"/home")
检测路径是否为文件:os.path.isfile(path)
检测路径是否为目录:os.path.isdir(path)
判断是否为绝对路径:os.path.isabs(path)
检测路径是否存在:os.path.exists(path)
返回一个路径的目录名和文件名:os.path.split(path)
分离扩展名:os.path.splitext(file)
获取路径名:os.path.dirname(file)
获取文件名:os.path.basename(file)
运行shell命令:os.system(command)
读取和设置环境变量:os.getenv()与os.putenv()
给出当前平台的行终止符:os.linesep (windows为\r\n,linux为\n,Mac为\r)
指示你正在使用的平台:os.name (windows为nt,linux为posix)
重命名:os.rename(old,new)
创建多级目录:os.makedirs(r"c:\python\test")
创建单个目录:os.mkdir("test")
获取文件属性:os.stat(file)
修改文件权限与时间戳:os.chmod(file)
终止当前进程:os.exit()
获取文件大小:os.path.getsize(filename)

文件操作:
文件内容替换
for line in fileinput.input("filepath",inplace=1):
line = line.replace("oldtext","newtext")
print line,

os.mknod("text.txt") 创建空文件
fp = open("text.txt",'w') 直接打开一个文件,如果不存在则创建文件
关于open模式:
w 以写的方式打开(如果文件存在会清空文件内容)
a 以追加的模式打开(从EOF开始,必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开(参见w)
a+ 以读写模式打开(参见a)
rb 以二进制模式打开
wb 以二进制模式打开(参见w)
ab 以二进制追加模式打开(参见a)
rb+ 以二进制读写模式打开(参见r+)
wb+ 以二进制读写模式打开(参见w+)
ab+ 以二进制读写模式打开(参见a+)

fp.read([size]) #size读取长度,以byte为单位
fp.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分
fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list其实它的内容是通过循环调用readline()实现的,如果提供size参数,size表示读取内容的总长,也就是说可能只读到文件的一部分
fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符
fp.writelines(seq) #把seq内容全部写道文件中(多行一次性写入),不会加任何东西
fp.close() #关闭文件。python会在一个文件不用后自动关闭,不过这一功能没有保证
fp.flush() #把缓冲区的内容写入磁盘
fp.fileno() #返回一个长整形的文件标签
fp.isatty() #文件是否是一个终端设备文件
fp.tell() #返回文件操作标记的当前位置,以文件的开头为原点
fp.next() #返回下一行,并将文件操作标记位移到下一行
fp.seek(offset[,whence])#将文件操作标记移到offset的位置,这个offset一般是相对于文件的开头来计算的,一般为正数,但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算,2表示以文件末尾为原点计算。需要注意,如果文件以a或a+模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾
fp.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文操作标记的位置

目录操作:
os.mkdir("file") #创建目录
shutil.copyfile("oldfile","newfile") #oldfile和newfile只能是文件
shutil.copy("oldfile","newfile") #oldfile只能是文件夹,newfile可以是文件或目标目录
shutil.copytree("olddir","newdir") #复制文件夹,newdir必须不存在
os.rename("oldname","newname") #重命名文件或文件夹
shutil.move("oldpos","newpos") #移动文件或目录
os.remove("file") #删除文件
os.rmdir("dir") #只能删除空目录
shutil.rmtree("dir") #有内容或空目录都可以删
os.chdir("path") #换路径

 

6.列表(可重复,可修改)
语法:shoppinglist=['car','clothes','book']
添加:shoppinglist.append(100)
插入:shoppinglist.insert(2,'apple')
修改:shoppinglist[2]='plane'
求大小:len(shoppinglist)
删除元素:shoppinglist.pop(3)
删除元素:shoppinglist.remove('apple')
排序:shoppinglist.sort()
倒序:shoppinglist.reverse()
统计:shoppinglist.count('car')
获取位置:shoppinglist.index('apple')
列表的分割:a =[1,2,3,4,5]
a[1] #2
a[1:] #2,3,4,5
a[:1] #1
a[:-1] #1,2,3,4
字符串变成列表:
a='A B C = * 8 3 5 + 23 45'
a.split()
a.split('=')


7.元组(可重复,无法修改)
语法:namelist=('a','b','c')
统计:namelist.count('a')
获取位置:namelist.index('b')

练习:
让用户输入工资
输出购物菜单及产品价格
计算用户是否可支付
输出用户剩余的钱,问用户是否继续购物,如果选择继续,继续进行,直到钱不够
如果不够,输出用户还需工作多久才能买的起


8.字典
语法:DicName = {"banana":"4","orange":"3.8"}
查看key:DicName.keys()
查看value:DicName.values()
添加:DicName['apple']='5'
删除:DicName.popitem() #默认删除第一个
删除:del DicName['banana']
修改:DicName['orange']='3'
查询:DicName.has_key('orange')
遍历:for k,v in DicName.items():print k,v

(' '.join(v) 把列表v转换为字符串并以空格分隔)


练习:
创建公司员工信息表,员工号,姓名,邮件,部门,职位,手机
提供用户查询接口,通过员工号查询用户信息


9.函数
  函数好处:程序可扩展性、减少程序代码、方面程序架构的更改
  定义函数:
    def sayHi(name,age=0):
    print "hello %s"%name
  调用函数:
    sayHi('Bruce',23)
    sayHi('Bruce')


  作业:
  信用卡程序
  功能要求(必须):
    1.额度15000,不可超额透支(用户ID,账号,密码,额度写入文件中)
    2.可以提现,手续费5%
    3.每月最后一天出账单(每月30天),写入文件(交易日,交易摘要,人民币金额,手续费)
    4.记录每月日常消费流水(交易日,账号,交易摘要,人民币金额,手续费)
    5.提供还款接口(还款总额,最低还款额(总欠款10%))
    优化(可选):
    1.每月10号为还款日,过期未还,按欠款额5%,计息

  

      

 

posted @ 2017-05-03 11:14  白色的番茄  阅读(231)  评论(0编辑  收藏  举报