python---10月,一个月python,p { margin



7.ReverseInteger

将整数翻转。注意123000翻转为321,-123翻转为-321:

方法7.ifx<0:
x=-1*int( str(0-x)[::-1] )
else:
x=int(str(x)[::-1])


转为字符串形式,x《0时 先 0-x变为整数。

注意: int 可以直接把整数前面 的0 去掉。


Python3中比较

Importoperator

operator.lt(a,b) less than

operator.le(a,b)

operator.eq(a,b)

operator.ne(a,b)

operator.ge(a,b)

operator.gt(a,b)


再次复习range的用法:

Range(5) 则 为0到4

Array= [1,2,3,4,5]

Array[0:] 从标号0开始

Array[:-1]列出-1之前的。:代表省略的

43 2 1


Array【3:-3】:


两个: 表示 以某个step跳步

如array【::2】 冒号在前面。

range(6,1,-1)意思是从6到1,间隔-1,-1的意思是倒着数。

2018年10月10日19:29:04

通俗的理解__name__== ‘__main__‘:假如你叫小明.py,在朋友眼中,你是小明(__name__== ‘小明‘);在你自己眼中,你是你自己(__name__== ‘__main__‘)。

if__name__ == ‘__main__‘的意思是:当.py文件被直接运行时,if__name__ == ‘__main__‘之下的代码块将被运行;当.py文件以模块形式被导入时,if__name__ == ‘__main__‘之下的代码块不被运行。


Lee27remove element

##注意读懂题目
#Given an array nums and a value val,
# remove all instances ofthat value in-place and return the new length.
# Do not allocateextra space for another array,
# you must do this by modifyingthe input array in-place with O(1) extra memory.
# The order ofelements can be changed. It doesn‘t matter what you leave beyond thenew length.

#
只要求返回长度
classSolution(object):
def
removeElement(self,nums,val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
length=0
foriinxrange(len(nums)):
if
nums[i]!=val:
nums[length]=nums[i]
length +=1
returnlength

比如【12 2 4 5 】运行后为 【12 5



Xrange区别range

Xrange使用生成器,占用的空间小。

defremoveElement(self,nums, val):

whileval innums:

nums.remove(val)

returnlen(nums)




2018年10月22

在pycharm中自定义了一个user类

在其他地方进行实例化时,newUser = user()user下方总是有红色的下划线。这种情况未必是错误,也可能是因为命名,格式等不符合规范。将类名改为 User,首字母大写,问题解决。

另外,newUser= user() user下方有红色下划线,也可以去类user下看情况的。


很多时候,报错在一句。当你怎么都看不出来错误的时候,可以看看上一句。说不定错误就在那里呀。


四、python知识

4.1heapq堆的使用

假设需要维护一个列表,这个列表不断有新的元素加入,你需要在任何时候很方便的得到列表中的最大(小)值,因此要求列表始终处于排序完毕状态,。

一个最简单的方法:每次插入新的数据时,调用一次sort方法,这样可以保证列表的顺序。

在数据量很小的情况下,这种方法可行。但是,sort方法实现并不高明,采用了自然归并排序,虽然排序开销已经被尽量的压缩了,复杂度大概是O(nlogn)


Importheapq


另一种解决方案就是heapq,它是Python的一个标准库。heapq实现了一种叫做堆的数据结构,是一种简洁的二叉树。他能确保父节点总是比子节点小,

heappush(self.event_queue,(first_record_time, "Monitor")) 将(first_record_time,"Monitor") push到self.event_queue(是一个列表中)中

heappop(self.event_queue,(first_record_time, "Monitor"))



4.2Queue的使用

队列,可以实现fifo,lifo,或者其他的优先级输出。


self.user_queue=queue.Queue()

self.user_queue.get()

self.user_queue.put(a)


4.3类


4.3.1类属性和类实例属性

classStudent(object):

count= 0

books= []  #类属性,所以的实例 共有的

def__init__(self, name, age):

self.name= name

self.age= age #类实例属性,不同的实例各自拥有

4.3.2类方法和实例方法

实例方法def haha(self):参数是self

类方法 def wei(cls): 参数是cls


4.3.3类的相互作用

在一个类中,可以生成另一个类的实例。

比如在类windows里,next_user= User(next_user_arrive_time)

使用了类User,新生成实例next_user,传入的参数是next_user_arrive_time


4.4其他

importqueue

Py3中为小写,py2中为Queue queue.Queue


堆的这种数据结构:是一个二叉树,

Heapq模块可以 对 堆进行操作


Pytnon里numpy里有现成的生成服从某个概率分布的随机变量,而且可以自己设置参数和随机数的数量。numpy.random.beta(a,b[, size]) Beta分布随机变量


numpy.random.binomial(n,p[, size]) 二项分布随机变量


numpy.random.chisquare(df[,size]) 卡方分布随机变量


numpy.random.dirichlet(alpha[,size]) 狄利克雷分布随机变量


numpy.random.exponential([scale,size]) 指数分布随机变量


numpy.random.geometric(p[,size]) 几何分布随机变量


numpy.random.normal([loc,scale, size]) 正态分布随机变量


numpy.random.poisson([lam,size]) 泊松分布随机变量


numpy.random.uniform([low,high, size]) 均匀分布随机变量


numpy.random.wald(mean,scale[, size]) Wald分布随机变量



4.5写代码中碰到的错误

经常见到的错误:仔细寻找错误的根源,一般是调用某个子函数时,子函数内部出的问题。导致主函数运行到这一步时,执行不下去了,就报了个错

Traceback(most recent call last):

File"/home/zhangyanhe/PycharmProjects/test/排队论.py",line 72, in <module>

mm1.start_sim()

File"/home/zhangyanhe/PycharmProjects/test/排队论.py",line 41, in start_sim

handle_event(a[1])

File"/home/zhangyanhe/PycharmProjects/test/排队论.py",line 51, in handle_event

user_queue.put(next_user)

TypeError:put() missing 1 required positional argument: ‘item‘



2018年10月24日19:47:28

NS3第四次作业

用py查找文件

-----------------------------------------------------

2018年10月26日13:37:14


写完这部分,读历史记录进行总结

混合编程问题python 和cc

Waf大概就是基于python的一个类似make的程序。其实可以在python中直接调用cc程序的啊绝对是可以的。生成动态链接库.so文件,到python中调用。但是这个方法对c很成立。在c++中有各种问题。很烦人.不要读中文博客,很多傻逼写的东西。


问题:gcc找不到头文件:在最后用-I是i不L选项 把目录加上编译:

先实践,然后写写原理:


vim查找:在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。




走了很远了 2018年10月26日21:34:31

1.使用swig实现c++链接到python中的操作。http://cering.github.io/2015/12/08/%E4%BD%BF%E7%94%A8SWIG%E5%AE%9E%E7%8E%B0Python%E8%B0%83%E7%94%A8C-C-%E4%BB%A3%E7%A0%81/

碰到问题:gcc找不到python.h,设置环境变量,增加gcc的搜索路径:$C_INCLUDE_PATH=/opt/example/include

$exportC_INCLUDE_PATH


$CPLUS_INCLUDE_PATH=/opt/example/include

$exportCPLUS_INCLUDE_PATH


$LIBRARY_PATH=/opt/example/lib

$exportLIBRARY_PATH


还是没搞定:很多不懂的啊。底层的东西都不明白。慢慢来。放弃此题。


2018年10月27日12:17:02py练习题2数据库mysql

https://blog.csdn.net/San_South/article/details/80715682

linux下pipUbuntu16.04上pip报错ModuleNotFoundError:No module named ‘pip._internal‘



python---10月

评论关闭