赞
踩
它也能用于列表中的切片:
>>> mylist[-6:-1]
结果:
[3, 4, 5, 6, 7]
为了达到这个目的,我们从random模块中导入shuffle()函数。
>>> from random import shuffle
>>> shuffle(mylist)
>>> mylist
运行结果:
[3, 4, 8, 0, 5, 7, 6, 2, 1]
Join()能让我们将指定字符添加至字符串中。
>>> ','.join('12345')
运行结果:
‘1,2,3,4,5’
Split()能让我们用指定字符分割字符串。
>>> '1,2,3,4,5'.split(',')
运行结果:
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
如果能区分像myname和Myname这样的标识符,那么它就是区分大小写的。也就是说它很在乎大写和小写。我们可以用Python试一试:
>>> myname='Ayushi'
>>> Myname
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
运行结果:
Myname
NameError: name ‘Myname’ is not defined
可以看到,这里出现了NameError,所以Python是区分大小写的。
在Python中,标识符可以是任意长度。此外,我们在命名标识符时还必须遵守以下规则:
字符串中的前导空格就是出现在字符串中第一个非空格字符前的空格。我们使用方法Istrip()可以将它从字符串中移除。
>>> ' Ayushi '.lstrip()
结果:
‘Ayushi ’
可以看到,该字符串既有前导字符,也有后缀字符,调用Istrip()去除了前导空格。如果我们想去除后缀空格,就用rstrip()方法。
>>> ' Ayushi '.rstrip()
结果:
‘ Ayushi’
从Q 21到Q 35是为有Python经验者准备的进阶版Python面试题。
我们使用lower()方法。
>>> 'AyuShi'.lower()
结果:
‘ayushi’
使用upper()方法可以将其转换为大写。
>>> 'AyuShi'.upper()
结果:
‘AYUSHI’
另外,使用isupper()和islower()方法检查字符春是否全为大写或小写。
>>> 'AyuShi'.isupper()
False
>>> 'AYUSHI'.isupper()
True
>>> 'ayushi'.islower()
True
>>> '@yu$hi'.islower()
True
>>> '@YU$HI'.isupper()
True
那么,像@和$这样的字符既满足大写也满足小写。
Istitle()能告诉我们一个字符串是否为标题格式。
>>> 'The Corpse Bride'.istitle()
True
在用Python写代码时,有时可能还没想好函数怎么写,只写了函数声明,但为了保证语法正确,必须输入一些东西,在这种情况下,我们会使用pass语句。
>>> def func(*args):
pass
>>>
同样,break语句能让我们跳出循环。
>>> for i in range(7):
if i==3: break
print(i)
结果:
0
1
2
最后,continue语句能让我们跳到下个循环。
>>> for i in range(7):
if i==3: continue
print(i)
结果:
0
1
2
4
5
6
当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包。其意义就是会记录这个值。
>>> def A(x):
def B():
print(x)
return B
>>> A(7)()
结果:
7
更多关于闭包的知识,请参看这里:
//运算符执行地板除法(向下取整除),它会返回整除结果的整数部分。
>>> 7//2
3
这里整除后会返回3.5。
同样地,执行取幂运算。ab会返回a的b次方。
>>> 2**10
1024
最后,%执行取模运算,返回除法的余数。
>>> 13%7
6
>>> 3.5%1.5
0.5
在Python中,我们有7种运算符:算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。
我们有7个算术运算符,能让我们对数值进行算术运算:
1.加号(+),将两个值相加
>>> 7+8
15
2.减号(-),将第一个值减去第二个值
>>> 7-8
-1
3.乘号(*),将两个值相乘
>>> 7*8
56
4.除号(/),用第二个值除以第一个值
>>> 7/8
0.875
>>> 1/1
1.0
5.向下取整除、取模和取幂运算,参见上个问题。
关系运算符用于比较两个值。
1.小于号(<),如果左边的值较小,则返回True。
>>> 'hi'<'Hi'
False
2.大于号(>),如果左边的值较大,则返回True。
>>> 1.1+2.2>3.3
True
3.小于等于号(<=),如果左边的值小于或等于右边的值,则返回Ture。
>>> 3.0<=3
True
4.大于等于号(>=),如果左边的值大于或等于右边的值,则返回True。
>>> True>=False
True
>>> {1,3,2,2}=={1,2,3}
True
>>> True!=0.1
True
>>> False!=0.1
True
这在Python面试中是个重要的面试问题。
我们将所有的算术运算符和赋值符号放在一起展示:
>>> a=7 >>> a+=1 >>> a 8 >>> a-=1 >>> a 7 >>> a*=2 >>> a 14 >>> a/=2 >>> a 7.0 >>> a**=2 >>> a 49 >>> a//=3 >>> a 16.0 >>> a%=4 >>> a 0.0
Python中有3个逻辑运算符:and,or,not。
>>> False and True
False
>>> 7<7 or True
True
>>> not 2==2
False
通过成员运算符‘in’和‘not in’,我们可以确认一个值是否是另一个值的成员。
>>> 'me' in 'disappointment'
True
>>> 'us' not in 'disappointment'
True
这也是一个在Python面试中常问的问题。
通过身份运算符‘is’和‘is not’,我们可以确认两个值是否相同。
>>> 10 is '10'
False
>>> True is not False
True
该运算符按二进制位对值进行操作。
>>> 0b110 & 0b010
2
2.或(|),按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
>>> 3|2
3
3.异或(^),按位异或运算符:当两对应的二进位相异时,结果为1
>>> 3^2
1
4.取反(~),按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
>>> ~2
-3
5.左位移(<<),运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0
>>> 1<<2
4
6.右位移(>>),把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
>>> 4>>2
我们在Python中,除十进制外还可以使用二进制、八进制和十六进制。
>>> int(0b1010)
10
2.使用bin()函数将一个数字转换为它的二进制形式。
>>> bin(0xf)
‘0b1111’
3.八进制数由数字 0-7 组成,用前缀 0o 或 0O 表示 8 进制数。
>>> oct(8)
‘0o10’
4.十六进数由数字 0-15 组成,用前缀 0x 或者 0X 表示 16 进制数。
>>> hex(16)
‘0x10’
>>> hex(15)
‘0xf’
使用 keys() 获取字典中的所有键
>>> mydict={'a':1,'b':2,'c':3,'e':5}
>>> mydict.keys()
dict_keys(['a', 'b', 'c', 'e'])
因为Python并没有私有变量的概念,所以约定速成以下划线为开头来声明一个变量为私有。所以如果你不想让变量私有,就不要使用下划线开头。
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。