Tag: python

浅拷贝,深层拷贝和正常赋值操作的区别究竟是什么?

import copy a=”deepak” b=1,2,3,4 c=[1,2,3,4] d={1:10,2:20,3:30} a1=copy.copy(a) b1=copy.copy(b) c1=copy.copy(c) d1=copy.copy(d) print "immutable – id(a)==id(a1)",id(a)==id(a1) print "immutable – id(b)==id(b1)",id(b)==id(b1) print "mutable – id(c)==id(c1)",id(c)==id(c1) print "mutable – id(d)==id(d1)",id(d)==id(d1) 我得到以下结果 – immutable – id(a)==id(a1) True immutable – id(b)==id(b1) True mutable – id(c)==id(c1) False mutable – id(d)==id(d1) False 如果我执行深度复制 – a1=copy.deepcopy(a) b1=copy.deepcopy(b) c1=copy.deepcopy(c) d1=copy.deepcopy(d) 结果是一样的 – immutable – id(a)==id(a1) […]

* args和** kwargs是什么意思?

*args和**kwargs是什么意思? 根据Python文档,看起来,它传递了一个参数元组。 def foo(hello, *args): print hello for each in args: print each if __name__ == '__main__': foo("LOVE", ["lol", "lololol"]) 这打印出来: LOVE ['lol', 'lololol'] 你如何有效地使用它们?

Python在类中有“私有”variables吗?

我来自Java世界,阅读Bruce Eckels的Python 3 Patterns,Recipes和Idioms 。 在阅读类时,它继续说在Python中不需要声明实例variables。 你只是在构造函数中使用它们,繁荣,它们在那里。 举个例子: class Simple: def __init__(self1, str): print("inside the simple constructor") self1.s = str def show(self1): print(self1.s) def showMsg (self, msg): print (msg + ':', self.show()) 如果这是真的,那么Simple类的任何对象都可以在类之外改变variabless值。 例如: if __name__ == "__main__": x = Simple("constructor argument") xs = "test15" # this changes the value x.show() x.showMsg("A message") 在Java中,我们被教授关于公共/私有/受保护的variables。 这些关键字是有意义的,因为有时候你想要一个class级以外的class级无法访问的variables。 […]

使用Python的stdlib查找本地IP地址

我如何在Python平台上独立地使用本地IP地址(即192.168.xx或10.0.xx)并仅使用标准库?

我怎样才能在Python中延迟时间?

我想知道如何在Python脚本中放一段时间。

为什么“return list.sort()”返回None,不是列表?

我已经能够validationfindUniqueWords确实导致sortinglist 。 但是,它不return list ,为什么? def findUniqueWords(theList): newList = [] words = [] # Read a line at a time for item in theList: # Remove any punctuation from the line cleaned = cleanUp(item) # Split the line into separate words words = cleaned.split() # Evaluate each word for word in words: # Count each […]

Python Lambda在一个循环中

考虑下面的代码片段: # directorys == {'login': <object at …>, 'home': <object at …>} for d in directorys: self.command["cd " + d] = (lambda : self.root.change_directory(d)) 我期望创build一个两个函数的字典如下: # Expected : self.command == { "cd login": lambda: self.root.change_directory("login"), "cd home": lambda: self.root.change_directory("home") } 但它看起来像生成的两个lambda函数是完全一样的: # Result : self.command == { "cd login": lambda: self.root.change_directory("login"), "cd home": lambda: self.root.change_directory("login") […]

string计数与重叠的事件

计算给定string出现次数的最佳方法是什么,包括Python中的重叠? 这是最明显的方法: def function(string, str_to_search_for): count = 0 for x in xrange(len(string) – len(str_to_search_for) + 1): if string[x:x+len(str_to_search_for)] == str_to_search_for: count += 1 return count function('1011101111','11') returns 5 ? 或者有没有更好的方法在Python?

为什么运行Flask dev服务器运行两次?

我正在使用Flask开发一个网站,而在开发中,我使用以下文件运行烧瓶: #!/usr/bin/env python from datetime import datetime from app import app import config if __name__ == '__main__': print '################### Restarting @', datetime.utcnow(), '###################' app.run(port=4004, debug=config.DEBUG, host='0.0.0.0') 当我启动服务器或由于文件已更新而自动重新启动时,它总是显示两行的打印行: ################### Restarting @ 2014-08-26 10:51:49.167062 ################### ################### Restarting @ 2014-08-26 10:51:49.607096 ################### 虽然这不是一个真正的问题(其余部分按预期工作),但我只是想知道为什么它会这样呢? 有任何想法吗?

如何检查stringinput是否是一个数字?

如何检查用户的stringinput是否是数字(例如-1等)? user_input = input("Enter something:") if type(user_input) == int: print("Is a number") else: print("Not a number") 以上将无法工作,因为input总是返回一个string。