python初步

python下函数参数的传递:python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值’来传递对象。

以下针对的是python3.5
1 如果是想在cmd下直接运行py文件,则 python *.py,即可运行
如果是进入python,要运行代码,则应该使用 run *.py

2 路径问题,进入ide界面后使用命令pwd可以知道当前的路径,要运行比如C:\下的某个文件,则需要将目录转到当前目录或者使用以下命令:

import syssys.path.append("/path/to/your/test.py")
import test
run test

3 print使用方法应该是print (“hello world!”),而不是print “hello world!”#(这是2.x中的用法)
4 python下文件读应该是使用:

f = open('data.txt',r)
    while True
        line = f.readline()
        if len(line)==0
            break
        print (line)

    f.cloes()
    写文件是
f = open('data.txt','w')#w是写,会覆盖以前的,a是追加写,不会覆盖,r是读取
a = 1.4
f.write(str(a)+'\n')#write是写一个字符到文件,而writeline是写一个序列到文件

f.cloes()

下面的的关于读取天天、xt的内容是转载自博客
很多时候,我们将数据存在txt或者csv格式的文件里,最后再用python读取出来,存到数组或者列表里,再做相应计算。本文首先介绍写入txt的方法,再根据不同的需求(存为数组还是list),介绍从txt读取浮点数的方法。

一、写入浮点数到txt文件:
假设每次有两个浮点数需要写入txt文件,这里提供用with关键字打开文件的方法,使用with打开文件是一个很好的习惯,因为with结束,它就会自动close file,不用手动再去flie.close()。

with open('file_path/filename.txt','a') as file:
    write_str = '%f %f\n'%(float_data1,float_data2)
    file.write(write_str)

二、从txt文件提取浮点数到numpy数组或list列表

首先假设你有一个odom.txt 的文件,14行,2列,数据都是浮点,里面每一行的数据个数都相同

1.如果你是想把这些数据读取出来,存为numpy数组,那么一句代码可以搞定:

a = numpy.loadtxt('odom.txt')

存为numpy数组以后,a的尺寸可以用a.shape进行查看,这里应为:(14,2)也就是14行2列。如果你觉得这个形状不是你期待的,你可以用:

b = numpy.reshape(a,(你想要的形状))

b = numpy.reshape(a,(-1,1,2))那么b就是一个三维数组了(14,1,2)

2.如果只是想读出来,存到一个list里,那就用下面的常用python格式了:

with open('odom.txt', 'r') as f:
    data = f.readlines()  #txt中所有字符串读入data

    for line in data:
        odom = line.split()        #将单个数据分隔开存好
        numbers_float = map(float, odom) #转化为浮点数
        print numbers_float

参考:
1.txt读取文件beginner tutorial

2.stackoverflow answer

5 python中常见的内建数据类型有,list(列表),tuple(元组),str(字符串),他们都可以称为容器(container),list中的数据是可以修改的,而tuple和str中的数据是不能修改的,另外,list和tuple中的数据是混合类型的,而str中是只能够为字符,这几个数据的特点是
list的两种初始化方法:

    a = [1,'b']#注意,字符或者字符串要用单或双引号括起来
直接用关键字来定义
    a = list([1,'b'])
另外,打印的时候,list打印出来是:
    print (a)
    [1,'b']
从这里可以看出,list数据的关键是,中括号。
tuple(元组):
tuple和list一样,都是容器,他们的区别是tuple中的值是不能够被修改的,另外,区分tuple与list的关键点在于,使用逗号,不加括号。比如
    a = 1,'b'
    #即使只有一个元素,要使他为tuple就要使用逗号
    aa = 1,#只有一个元素的时候,要加逗号
    aaa = 'b',
    #使用关键字指定:
    a = tuple((1,'b'))
    aa = tuple((1,))
    aa = tuple(('b',))#等同于tuple('b'),tuple('b',)
    #注意,当只有一个元素的时候,除非为字符,否组数字是不能这样的:a = tuple(1,),a = tuple(1),单个数字只能够这样:
    a = tuple((1,))
    #或者
    a = tuple([1,])
    #打印的时候,tuple打印出来是:
    a = 1,'b'
    aa = tuple([1,'b'])
    aaa = tuple((1,))
    aaaa = tuple('abs')#等同于tuple('abs',)
    print (a)
    print (aa)
    print (aaa)
    print (aaaa)
    (1,'b')
    (1,'b')
    (1,)
    ('a','b','s')

另外,可以将str转换成list,

    a = '1.4,1.4'
    b = a.split(',')
这样,就将a转换成了list,第二行语句的意思是,将a,以逗号进行区分,这样,就将a转换成了list,如果打印b的话,会出现:
    ['1.4','1.4\n']

再比如,有一个文件,data.txt,里面的数据是:

1.4,2
2,3

如果要将这些数据读取进来再变成数字list那么应该这么做:
    f = open('data.txt')
    mylist = []
    while True
        line = f.readline();
        a = line.strip()#首先将该行末尾的\n去掉
        b = a.split(',')#再将该行以,进行划分,这一步,就将str变成了list
        for data in b
            mylist.append(float(data))#将字符变成了数字
但是这样得到的数据都是连成一个向量,失去了原来的shape信息,因此还可以这样:
mi = []#定义一个list
myline = f.readlines()#读取所有行,前面是一行一行的读取
for line in myline:
    aas = line.strip() #去掉该行的末尾的换行符号,注意这里的aas还是str
    asss = aas.split(',')#将一个str按照,进行区分,将一个字符串变成一个list
    tmp=[]#定义一个list
    for dda in asss:
        tmp.append(float(dda))#将该行的所有字符变成数字
    #也可以用这一条语句替换掉上面的三条语句:tmp  =(list)(eval(aas))
    #注意输入是aas,不是asss,其输入是一个字符串
    mi.append(tmp)#添加该行到前面的list中
str(字符串),和tuple一样,str中的数据是不能够修改的,这里主要给出几个str的函数:strip(),用于去掉字符串中的指定的字符,默认的是去掉换行符,需要注意的是,调用该函数不会改变原始字符串,而是返回一个修改后的字符串,这是因为str是不能够修改的,replace(old,new),用new的字符去替换掉old的字符串,同样也是返回修改后的字符串,split(','),将字符串用逗号进行分裂,返回的是一个list。

另外,str还有一个成员函数:format,str.format,在str中{}部分,用format后的内容来替换,比如:

url = “www.baidu.com”+”{:0>2d}”.format()
在这里,d表示期待一个整数:

>>>"{:d}".format(3)
'3' 

2d表示格式到2个字符,默认使用空格补齐

>>>":2d".format(3)
' 3'

0>表示使用0在左边补齐:

>>>"{:0>2d}".format(3)
'03'

下面的网址对格式化输出有更详细的介绍:
http://blog.csdn.net/lisonglisonglisong/article/details/38564417

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值