基本概念
文章平均质量分 70
喵星人Xcode
初恋是C,深爱着OC与Swift,出轨过H5与JS和Java,却选择Python过一辈子...
展开
-
Python三目运算符(三元运算符)用法详解
我们从一个具体的例子切入本节内容。假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if else 语句,例如:if a>b: max = a;else: max = b;但是Python提供了一种更加简洁的写法,如下所示:max = a if a>b else b这是一种类似于其它编程语言中三目运算符? :的写法。Python 是一种极简主义的编程语言,它没有引入? :这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。..原创 2022-02-05 03:13:05 · 9588 阅读 · 0 评论 -
Python 中获取字典的key列表和value列表
# -*- coding: utf-8 -*-# 定义一个字典dic = {'剧情': 11, '犯罪': 10, '动作': 8, '爱情': 3, '喜剧': 2, '冒险': 2, '悬疑': 2, '惊悚': 2, '奇幻': 1}#通过list将字典中的keys和values转化为列表keys = list(dic.keys())values = list(dic.values())# 结果输出print("keys列表为:",end='')print(keys)print(".原创 2021-11-30 11:32:22 · 6266 阅读 · 0 评论 -
xml 中的 大于号,小于号
< < 小于号 > > 大于号 & & 和 ' ’ 单引号 " " 双引号原创 2021-11-24 17:57:33 · 2414 阅读 · 0 评论 -
Python list中去重的多种方法
去重之后顺序会改变set去重 (列表去重会让列表改变原来的顺序)l1 = [1,4,4,2,3,4,5,6,1]l2 = list(set(l1))print(l2) # [1, 2, 3, 4, 5, 6]但是,可以通过列表中索引(index)的方法保证去重后的顺序不变。l1 = [1,4,4,2,3,4,5,6,1]l2 = list(set(l1))l2.sort(key=l1.index)print(l2) # [1, 4, 2, 3, 5, 6]..原创 2021-07-03 12:14:17 · 964 阅读 · 0 评论 -
Odoo10 widget标签整理
widget="statusbar"头部状态条标签 widget="many2many_binary" 可以看小图的标签widget="email" 电子邮件地址标签 widget="selection" 下拉选择标签widget="mail_followers" 关注者标签 widget="mail_t.原创 2018-12-27 11:58:07 · 1018 阅读 · 0 评论 -
Git 分支管理
几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。有人把 Git 的分支模型称为"必杀技特性",而正是因为它,将 Git 从版本控制系统家族里区分出来。创建分支命令:$ git branch (branchname)切换分支命令:$ git checkout (branchname)当你切换分支的时候,...原创 2018-08-04 01:38:39 · 358 阅读 · 0 评论 -
Git 远程操作详解
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git clonegit remotegit fetchgit pullgit push本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆...原创 2018-05-05 18:09:39 · 699 阅读 · 1 评论 -
高并发 - 解决方案
并发与并行并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个...原创 2018-03-27 10:34:45 · 1228 阅读 · 0 评论 -
深入理解 - 进程与线程
进程与线程的概念进程考虑一个场景:浏览器,网易云音乐以及notepad++ 三个软件只能顺序执行是怎样一种场景呢?另外,假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。你是不是已经想到在程序A读取数据的过程中,让程序B去执行,当程序A读取完数据之后,让程序B暂停。聪明,这当然...原创 2018-03-15 17:54:03 · 709 阅读 · 2 评论 -
Redis 持久化 - RDB持久化与AOF持久化的比较
什么是持久化,简单来讲就是将数据放到断电后数据不会丢失的设备中。也就是我们通常理解的硬盘上。写操作的流程首先我们来看一下数据库在进行写操作时到底做了哪些事,主要有下面五个过程。1.客户端向服务端发送写操作(数据在客户端的内存中)2.数据库服务端接收到写请求的数据(数据在服务端的内存中)3.服务端调用write(2) 这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中)4.操作系统将缓冲区中的...原创 2018-03-11 08:56:42 · 749 阅读 · 0 评论 -
MySQL、MongoDB、Redis 数据库之间的区别
NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路。MongoDB:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但 MongoDB 并不是单纯的内存数据库。MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开...原创 2018-03-11 02:09:06 · 86232 阅读 · 9 评论 -
Git 与 SVN 区别
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。 Git 与 SVN 区别GIT不仅仅是个版本控制系统,它也是个内容管理...原创 2018-08-04 01:45:41 · 547 阅读 · 0 评论 -
“堆”,"栈","堆栈","队列",它们的区别
“堆”,"栈","堆栈","队列",这些到底是什么意思? 堆:什么是堆?又该怎么理解呢?①堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: ·堆中某个节点的值总是不大于或不小于其父节点的值; ·堆总是一棵完全二叉树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。②堆是在程序运行时,而不是在程序编译时...原创 2018-11-21 12:12:36 · 1059 阅读 · 0 评论 -
栈与队列的区别
1、队列先进先出,栈先进后出。2、对插入和删除操作的"限定"不同。栈是限定只能在表的一端进行插入和删除操作的线性表。 队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。 3、遍历数据速度不同。栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性。队列则不同,它基于地址指针...原创 2018-11-21 20:45:28 · 7601 阅读 · 0 评论 -
Python 日期和时间
获取当前时间戳#!/usr/bin/python# -*- coding: UTF-8 -*- import time; # 引入time模块 ticks = time.time()print "当前时间戳为:", ticks当前时间戳为: 1459994552.51获取当前时间#!/usr/bin/python# -*- coding: UTF-8 -...原创 2019-04-08 18:03:45 · 692 阅读 · 0 评论 -
Python unicode 和 str 相互转化
str: s = "你好"unicode: u = u"你好“unicode 转化为 str(encode 编码):str = u.encode('gbk')str = u.encode('utf-8')str转化为unicode (decode 解码):unicode = s.decode('gbk')unicode = s.decode('utf-8'...原创 2019-04-08 20:10:28 · 19332 阅读 · 3 评论 -
Python 算两个日期之间_天数差
算两个日期之间天数差import datetimedef days(str1,str2): date1=datetime.datetime.strptime(str1[0:10],"%Y-%m-%d") date2=datetime.datetime.strptime(str2[0:10],"%Y-%m-%d") num=(date1-date2).days...原创 2019-04-08 20:16:28 · 7653 阅读 · 0 评论 -
Python 算两个日期之间_月度差
算两个日期之间月度差import datetimedef months(str1,str2): year1=datetime.datetime.strptime(str1[0:10],"%Y-%m-%d").year year2=datetime.datetime.strptime(str2[0:10],"%Y-%m-%d").year month1=dateti...原创 2019-04-08 20:19:12 · 1163 阅读 · 0 评论 -
Python datetime 和 str 相互转化
datetime转化为strnow = datetime.datetime.now()now.strftime('%Y-%m-%d %H:%M:%S')print now# 输出2012-03-05 16:26:23.870105strftime是datetime类的实例方法。str转化为 datetimet_str = '2012-03-05 16:26:2...原创 2019-04-08 20:34:39 · 6197 阅读 · 0 评论 -
Ubuntu18.04 安装 Odoo10
安装Ubuntu 18.04,省略安装时,默认用户名为odoo ubuntu 16.04开始使用systemd管理服务,但是systemd兼容sysv init脚本下载odoo源码从http://nightly.odoo.com/10.0/nightly/src/odoo_10.0.latest.tar.gz 下载源码例如下载到/hom...原创 2019-04-17 18:04:42 · 1432 阅读 · 0 评论 -
TCP/IP、Http、Socket的区别?
网络的七层模型网络由下往上分为 物理层、 数据链路层、 网络层、 传输层、 会话层、 表示层、 应用层。通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络...原创 2018-03-03 03:41:20 · 403 阅读 · 0 评论 -
block产生的内存泄漏以及解决方案(以及扩展)
1.前言:在ARC(自动引用技术)前,Objective-c都是手动来分配释放 释放 计数内存,其过程非常复杂。ARC技术推出后,貌似世界和平了很多,但是其实ARC并不等同于Java或者C#中的垃圾回收,ARC计数只是在XCode在编译的时候自动帮我们加上了释放 计数+1 计数-1.内存泄露例子:然而在一些特殊的情况下,内存泄露依然存在,而且防不慎防,这里讲一下Objective-C中Block计...原创 2018-03-03 03:32:13 · 1244 阅读 · 0 评论 -
进程间通信(IPC)介绍
概述进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共场所”,各进程均可以访问,所以内核也可以提供这样的条件。此外,还有双方都可以访问的外设。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换...原创 2018-03-08 20:39:53 · 2759 阅读 · 0 评论 -
set与get方法的理解
set与get方法的理解原创 2017-02-22 20:17:42 · 2423 阅读 · 0 评论 -
runtime - 属性扩展(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方 法;associative,可以通过它来扩展属性;原创 2017-02-22 20:01:10 · 562 阅读 · 0 评论 -
runtime - 关联对象
遇到这样一个问题:“如何給NSArray添加一个属性(不能使用继承)”,筒子立马蒙逼了,不能用继承,难道用分类?但是分类貌似只能添加方法不能添加属性啊,筒子百思不得其解,直到后来接触到了runtime才恍然大悟。原创 2017-02-22 19:36:52 · 476 阅读 · 0 评论 -
反射机制
Class对象其实本质上就是一个结构体,这个结构体中的成员变量还是自己,这种设计方式非常像链表的数据结构。原创 2017-02-22 17:00:11 · 272 阅读 · 0 评论 -
viewDidUnload
viewDidUnload运用讲解原创 2017-01-11 14:51:45 · 539 阅读 · 0 评论 -
不常用的基本方法
//1.使用perform调用不带参数的方法 //SEL是一个类型:方法选择器 @selector(方法名) [self performSelector:@selector(demo1)]; //2.使用perform调用带有一个参数的方法 [self performSelector:@selector(demo2:) withObject:@"这是一个参数"];原创 2017-01-11 14:49:13 · 353 阅读 · 0 评论 -
数据类型之间的转换
数据类型之间的转换原创 2016-10-31 19:24:34 · 622 阅读 · 0 评论 -
真机调试 - 添加IOS设备
真机调试 - 添加IOS设备原创 2016-11-01 18:15:10 · 5647 阅读 · 0 评论 -
获取毫秒时间戳
项目中为了与Android相配合.要获取到时间戳里的毫秒单位。原创 2016-10-31 19:29:39 · 3266 阅读 · 0 评论 -
Category详解
类别是Objective-C的一项功能,可扩展类的接口,而无需对类进行子类化。原创 2017-02-22 21:31:54 · 2260 阅读 · 0 评论 -
Category与关联对象实现原理
category是Objective-C 2.0之后添加的语言特性,category的主要作用是为已经存在的类添加方法。原创 2017-02-22 21:25:49 · 1355 阅读 · 0 评论 -
NSString 字符串中提取目标字段 & 截取的三种方法
NSString字符串截取的三种方法,截取目标字段原创 2017-02-23 19:59:15 · 4066 阅读 · 0 评论 -
IOS - 深入理解 深拷贝 与 浅拷贝
OC 数组中的深拷贝与浅拷贝浅拷贝:即指针拷贝,源对象和新对象指向的是同一个地址,也就是说浅拷贝要复出出来一个新的文件,但两个文件的地址还是一个。浅拷贝的话是只有不可变数组(如:NSArray,NSSet,NS字典)遇上copy,才是浅拷贝,剩下的都是深拷贝。Dog * dog1 = [Dog new];// 这里就是浅拷贝,即指针拷贝Dog * dog2 = dog1;深拷贝,自己定义的类一...原创 2018-03-07 01:06:56 · 525 阅读 · 0 评论 -
对面向对象的理解
一句话解释什么是对象!所谓对象,就是抽象化的数据本身面向对象有三大特性:封装,继承,多态。对象与类的区别类是抽象的,不占用存储空间;而对象具体的,占用存储空间。面向对象的产生原因面向对象的编程产生的历史原因:由于面向过程编程在构造系统时,无法解决重用,维护,扩展的问题,而且逻辑过于复杂,代码晦涩难懂,因此,人们开始想能不能让计算机直接模拟现实的环境,以人类解决问题的方法,思路,习惯和步骤来设计相应原创 2018-01-13 02:35:19 · 416 阅读 · 0 评论 -
Python 的内存管理机制
从三个方面来说;一、对象的引用计数机制; 二、垃圾回收机制; 三、内存池机制一、对象的引用计数机制Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。引用计数增加的情况:1,一个对象分配一个新名称2,将其放入一个容器中(如列表、元组或字典)引用计数减少的情况:1,使用del语句对对象别名显示的销毁2,引用超出作用域或被重新赋值sys.getrefcount( )函数可以获得原创 2018-01-18 11:32:10 · 404 阅读 · 0 评论 -
Python中的list与NumPy中array的区别 及相互转换
Python中的list是python的内置数据类型,list中的数据类不必相同的。在list中的数据类型保存的是数据所存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。Numpy中的array所存放的数据类型必须全部相同。list1=[1,2,3,'原创 2018-01-12 02:27:40 · 34912 阅读 · 1 评论 -
Category - 使用
Categories可以为一个对象添加方法而不需要增加该类的子类或者更改当前的对象。实际上Categories通常被用来为已经存在的类添加方法,比如你可以自己为 NSString 字符串类添加你自己的方法。原创 2017-05-26 15:23:10 · 492 阅读 · 0 评论