记录一下平时遇到的小问题

1.关于[]的使用

array[::]全部取出

array[3:-3]列出3到-3之间的

array[2::]从第二个元素开始取

array[::3]从第一个开始取,梅3个取一次

array[::-1]颠倒列表

2.关于_,__和__xx__的区别

-单下划线:python中并不存在真正的私有方法,为了实现私有方法,可以在类的方法或属性前面加上一个'_'单下划线,意味着该方法或属性不应该去调用

__双下划线:这个双下划线是用来避免子类覆盖其内容。

__xx__前后各双下划线:__xx__经常是操作符或本地函数调用的magic  methods

3.关于python中的列表生成式

[x*x for x in range(1,11)]写列表生成式的时候,把要生成的元素x*x放在前面,后面跟for循环,就可以把list创建出来。for语句后面可以接其他语句。

4.关于python的magic methods

构造方法:

__new__(cls,[...):

__new__是对象实例化时第一个调用的方法,它只取下cls参数,并把其他参数传给__init__。

__init__(self,[...])

类的初始化方法,它获取任何传给构造器的参数。

_del__(self)

__del__是对象的销毁器,它并非实现了语句del  x,而是定义了当对象被垃圾回收时的行为

比较操作符:

__cmp__(self,other)

__cmp__是所有比较魔法方法中最基础的一个,它实际上定义了所有比较操作符的行为。__cmp_在self<other时返回一个负整数,在self==other时返回0,在self>other时返回正整数。

__eq__(self,other)

定义等于操作符(==)的行为

__ne__(self,other)

定义小于操作符(<)的行为

__gt__(self,other)

定义大于操作符(>)的行为

__le__(self,other)

定义小于等于操作符(<)的行为

__ge__(self,other)

定义大于等于操作符(>)的行为

数值操作符

__pos__(self)

实现取正操作

__neg__(self)

实现取负操作

__abs__(self)

实现内建绝对函数

__invert__(self)

实现取反操作符

__round__(self,n)

实现内建函数round(),n是近似小数点的位数

__floor__(self)

实现math.floor()函数,即向下取整

__ceil__(self)

实现math.ceil()函数,即向下取整

__trunc__(self)

实现math.trunc()函数,即距离零最近的整数

常见算数操作符

__add__(self,other)

实现加法操作

__sub__(self,other)

实现减法操作

__mul__(self,other)

实现乘法操作

__floordiv__(self,other)

实现使用//操作符的整数除法

此外还有很多很多的magic  methods

5.python的常用数据类型

列表:

字符串和元组是不可变的,二列表是可变的。可以将字符串和元组转换成一个列表,只需使用list函数。

常用的列表方法有:

1.index,:index方法用于从列表中找出某个元素的位置,如果有多个相同的元素,则返回第一个元素的位置。

2.count:count方法用于统计某个元素在列表中出现的次数

3.append:append方法用于在列表末尾增加新的元素

4.extend:extend方法将一个新列表的元素添加到原列表中。注意参数必须是列表

5.insert:insert方法用于将某个元素添加到某个位置,第一个参数是位置,第二个是元素的值

6.pop:pop方法用于移除列表中的一个元素,如果不给定位置,则默认是最后一个,返回的是被删除的值。根据位置来删除。

7.remove:remove方法用于移除列表中的某个匹配列表,如果有多个匹配,则移除第一个。根据元素的值来删除

8.reverse:reverse方法用于将列表中的元素进行反转

9;.sort:sort方法用于对列表进行排序,注意该方法会改变原来的列表,而不会返回新的排序列表。另外,sort方法的返回值为空。如果不想改变原列表,而是希望回一个排序后的列表,可以使用sorted函数。不管是sorted函数,默认排序都是升序排序,可以指定reverse参数为True,那么就会降序排序。除了reverse参数,还可以指定key关键字参数,它为每个元素创建一个键,然后所有元素按照这个键来排序

元组:
元组是可不变的,用圆括号表示。创建一个值的元组需要在值后面再加上一个逗号。因为元组是不可变的,所以没有sort,extend,append等方法

字符串:
字符串也是一种序列,通用的序列操作,例如索引,分片,加法,乘法对它同样适用。
下面说一下字符串常用的方法:
1.find:find方法用于在一个字符串中查找子串。如果没有找到,则返回-1
2.split:split方法用于将字符串分割成序列。如果不提供分隔符,则默认使用所有空格作为分隔符
3.join:join方法可以说是split的逆方法,它用于将序列中的元素连接起来。
4.strip:strip方法用于移除字符串左右两侧的空格,但是不包括内部。当然也可以指定需要移除的字符串
'###  hello  world!!!  %%%'.strip('#%')  #移除左右两侧的'%'或'#'
5.replace:replace方法用于替换字符串中的所有匹配项
6.translate:translate方法和replace方法类似,但translate方法只处理单个字符。
translate方法的使用形式如下:str.translate(table[,deletechars]),其中table是一个包含236个字符的转换表,可通过maketrans方法转换而来,deletechars是字符串中要过滤的字符集。
from string import maketrans
table=maketrans('aeiou','12345')
'a e i osu'.translate(table)
可以看到,maketrans接收两个参数:两个等长的字符串,表示第一个字符串的每个字符用第二个字符串对应位置的字符替代。

7.lower/upper:lower/upper用于返回字符串的大写或小写形式。
字典:
字典是python中唯一的映射类型,每个元素有key和value构成,键必须是不可变对象。
字典可以通过{}来创建,可以通过dict函数来创建。
如果在遍历的时候,要删除键为key的某项,使用for key in d的遍历方式会抛出RuntimeError。使用for key in d.keys()不会抛出异常。

如果需要判断某个键是否在字典里面,可以用in进行判断。

字典常用的方法有:

1.clear:clear方法用于清空字典中所有的项,这是个原地操作,所以无返回值。

2.copy:copy方法实现的是浅复制,它是对可变对象的修改保持同步,对不可变对象的修改保持独立。和浅复制对应的是深复制(deepcopy)他会创造一个副本,跟原来的对象没有关系。

3.get:get  当我们试图访问字典中不存在的项时会出现KeyError,但是使用get就可以避免这个问题。

4.setdedault:setdefault方法用于对字典设定键值。

5.update:update方法用于将一个字典添加到原字典,如果存在相同的键则会进行覆盖。

6.items:iters方法将所有的字典项以列表的形式返回,这些列表项的每一项都来自于(键,值)。iteritems的作用大致相同,但是会返回一个迭代器而不是列表。

7.keys/iterkeys:跟上诉情况类似,不同返回的是键

8.values/itervalues:返回的是值

9.pop:pop方法用于将某个键值从字典中移除,并返回给定键的值

10.popitem:popitem用于随机移除字典中的某个键值对

集合:
集合(set)和字典(dict)类似,他是一组key的集合,但不存储value。集合的特性就是:key不能重复
创建集合的方式有:set或者()

6.*args和**kwargs

*args表示多个无名参数,**kwargs表示关键字参数

7.with语句

with所求值的的对象必须有一个__enter()__方法,一个__exit__()方法
with语句的执行过程为,紧跟with后面的语句被求求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。
with的强大之处是它可以处理异常,实际上,在with后面的代码块抛出任何异常时,__exit__()方法被执行。
以上是简述了with语句,下面来详细说一下with语句后面的事。
首先来看一下上下文管理协议,协议包含方法__enter__()和__exit__()
上下文管理器:支持上下文管理协议的对象,这种对象实现了__enter__()和__exit__()方法,上下文管理器定义执行withn语句时要建立的运行时上下文。

8.ord()和chr()方法

ord()函数互殴字符的整数表示,chr()函数把编码转换为对应的字符
ord('a')
chr(65)

9

#! /usr/bin/env python3
# -*- coding:utf-8  -*-

第一行代码是为了告诉linux/os   x系统,这是一个python可执行程序
第二行代码是为了告诉python解释器,按照utf-8编码读取源代码

10.格式化

在python中,采用的格式化方式是和c语言一样的,用%实现,在字符串内部,%d表示整数,%f表示浮点数,%s表示字符串,%x表示十六进制整数,如果字符串里面的%是一个普通字符的话,则用%%来表示一个%。

11.递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
在计算机中,函数调用是通过栈这种数据结构来实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归函数的次数过多,就会导致栈溢出。
解决递归调用栈溢出的方法是通过尾递归优化,尾递归是指,在函数返回的时候,调用自身本身,并且,return不能包含表达式。

12.linux用户管理

1.创建用户命令两条:
adduser  :会自动为创建的用户指定主目录,系统shell版本,会在创建时输入用户密码。
useradd  :需要使用参数指定上述基本设置,如果不使用任何参数,则创建的用户无密码,无主目录,没有指定shell版本
2.用户删除命令
userdel :只删除用户  sudo  userdel  用户名   连同用户主目录一块删除  sudo  userdel -r  用户名

12.linux更改文件或文件名称

其实就是用mv命令
将A更名为B
mv A B

13.要让配置后的bashrc环境变量生效的方法

通过source.bashrc运行即可

14.source命令的用法

source命令也叫做"点命令"。source命令通常用于重新执行刚修改的初始化文件,使之立即生效。

15.实现远程桌面访问

一般情况下,如果需要登陆远程Linux系统,我们会用到ssh/telnet来实现,如果需要登陆到远程linux的桌面环境,我们可能会使用VNC。VNC是大部分Linux发行版默认的基于RFB协议的远程桌面程序,但是它太慢了。如果你使用过Windows下的远程桌面,应该会对其操作的流畅性有很深的印象。Windows的远程桌面基于RDP协议,在linux中,也可以找到类似的叫做xrdp。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值