python学习中遇到的问题

来源:互联网 发布:淘宝首饰拍摄技巧 编辑:程序博客网 时间:2024/05/07 19:36

1. 键盘输入数字得到的是字符串,需要转换类型

    num=raw_input("num=")

    for i in range(2,num+1):
    报错:TypeError: cannot concatenate 'str' and 'int' objects

    改正:num=int(raw_input("num="))

2. 递归调用(初始值的赋值)

题目:利用递归方法求5!。
    def fun(i):
        if i==1:
            return 1

        return i*fun(i-1)
    print fun(5)

  题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。  def output(s,l):      if l==0:          return      print s[l-1]      output(s,l-1)    s = raw_input('Input a string:')  l = len(s)  output(s,l)

3.浮点数
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
 u = 2.0  d = 1.0 s = 0.0 for i in range(0,20): s = s+u/d  u = u+d  d = u-d  print '%f'%s


4.递减序列

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个, 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

   n = 1 

     for i in range(9,0,-1): 

         n = (n+1)<<1 

     print n

5.数据交换

 题目:将一个数组逆序输出。
 a = [1,2,3,4,5,6,7,8,9]
 l = len(a)
 print a
 for i in range(l/2):
     a[i],a[l-i-1] = a[l-i-1],a[i]  #注意此句,数据交换,等价于(a[i],a[l-i-1] )=(a[l-i-1],a[i])。python中任意逗号分隔的序列可以看作元组
 print a 

6.python中的条件运算符

Python中没有像C++和Java等语言中的三元运算符(condition?x,y),但是可以用if else语句实现相同的功能:

复制代码 代码如下:
>>> condition = True 
>>> print 'True' if condition else 'False' 
True 
>>> condition = False 
>>> print 'True' if condition else 'False' 
False 
>>>

7.匿名函数lambda的调用

MAXIMUM = lambda x,y : x if (x>y) else y
>>> MAXIMUM(234,9)2348.时间函数。time.time(),time.ctime()if __name__ == '__main__':    import time    start = time.time()    for i in range(3000):        print i    end = time.time()     print end - start9.l=list(str)将str转换成list  str=join(l)将list拼接成str  python的read和write方法的操作对象都是string,因此有时候需要做list和string之间的转换
10.Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法

转自:http://lovesoo.org/python-script-error-attributeerror-module-object-has-no-attribute-solve-method.html

最近在编写Python脚本过程中遇到一个问题比较奇怪:Python脚本正常的,但执行报错"AttributeError: 'module'object has no attribute 'xxx'",其实是.pyc文件存在问题。

问题定位:查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件

问题解决方法:删除该库的.pyc文件,重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可


11. 在写一个多线程类的时候调用报错 

RuntimeError: thread.__init__() not called

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. class NotifyTread(threading.Thread):  
  2.     def __init__(self, params):  
  3.         threading.Thread.__init__(self)  #here。。。。。。  
  4.         self.params = params  
  5.       
  6.     def run(self):  
  7.         print "start notify............"  
  8.         time.sleep(10)  
  9.         print notify_tran(self.params)  
  10.         print "end notify.............." 
在init中要先初始化Thread,然后在给参数赋值,就能解决了。
也就是不能缺少
threading.Thread.__init__(self)
这是一个使用的注意地方。

本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/41962967

作者orangleliu 采用署名-非商业性使用-相同方式共享协议


12.多线程练习---面向对象的使用方式Threading

 

13.python文件操作:

     python写文件时写入的是str,list类型不可以

     urlfile.write(urllist)
     TypeError: argument 1 must be string or read-only character buffer, not list



参考:http://www.cnblogs.com/CheeseZH/archive/2012/11/05/2755107.html


0 0
原创粉丝点击