Python 学习笔记(4.19更)

2023-04-25 09:35:49 浏览数 (1)

16进制转2进制
代码语言:javascript复制
> bin(0x5)[2:]
'101'

> bin(0x5)[2:].zfill(4)
'0101'
倒序输出
代码语言:javascript复制
> bin(0x5)[2:].zfill(4)
'0101'

> bin(0x5)[2:].zfill(4)[::-1]
'1010'
eval() 函数
代码语言:javascript复制
###eval()函数用来执行一个字符串表达式,并返回表达式的值
> x=7
> eval('x*3')
21

> a='abc'
> for i in range(len(a)):
    print eval('0x' a[i])
    
10
11
12
gmpy2 求整数解
代码语言:javascript复制
# gmpy2.iroot(a,b) a开b次方,返回一个xy元组,y=1的话结果是整数
> import gmpy2
> x=18
> y=9
> i=0
> while 1:
    if(gmpy2.iroot(x i*y,2)[1]==1):
        print gmpy2.iroot(x i*y,2)
        break
    i=i 1
    
(mpz(6), True)
libnum库
  • 数字型(不论是十六进制还是十进制)与字符串之间的转换:
代码语言:javascript复制
> import libnum
> s='flag{2333}'
> print libnum.s2n(s)
483680648326664261153661

> n=483680648326664261153661
> print libnum.n2s(n)
flag{2333}
  • 二进制与字符串之间的转换:
代码语言:javascript复制
> import libnum
> b='0100110001111001011100100110100101100011'
> print libnum.b2s(b)
Lyric

> s='Lyric'
> print libnum.s2b(s)
0100110001111001011100100110100101100011
binascii模块
  • binascii可用来进行进制和字符串之间的转换
代码语言:javascript复制
> import binascii
> s='abcde'
> h=binascii.b2a_hex(s)   # 字符串转16进制 '6162636465'
> h=binascii.hexlify(s)   # 作用同上

> s=binascii.a2b_hex(h)   # 16进制转字符串 'abcde'
> s=binascii.unhexlify(h) # 作用同上
python文件读写
  • readline方法 :每次读取一行内容,返回一个字符串对象
代码语言:javascript复制
> f=open('233.txt')
> while 1:
    a=f.readline()
    if a:
        print a
    else:
        break
233

233

233

​ 由于文档中换行,在读取是会读取换行符'n',所以显示出来会有一行空行,每隔一行显示内容

  • readlines方法 : 一次性读取整个文件,并将每行内容返回列表中一个元素
代码语言:javascript复制
> f=open('233.txt')
> a=f.readlines()
> print a
['233n', '233n', '233n']

​ 由于文档中换行,所以会读取换行符'n',下述去掉换行符的方法

  • strip() 函数:可以去掉每行结束的'n'
代码语言:javascript复制
> f=open('233.txt')
> while 1:
    a=f.readline().strip()
    if a:
        print a
    else:
        break
233
233
233
代码语言:javascript复制
for line in file.readlines():
    line=line.strip('n')

声明:s为字符串,rm为要删除的字符序列

代码语言:javascript复制
    ① s.strip(rm)    删除s字符串中开头、结尾处,位于 rm删除序列的字符
    ② s.lstrip(rm)    删除s字符串中开头处,位于 rm删除序列的字符
    ③ s.rstrip(rm)   删除s字符串中结尾处,位于 rm删除序列的字符

注意:当rm为空时,默认删除空白符(包括'n', 'r', 't', ' ')

  • write() 方法:
代码语言:javascript复制
f=open('132','w')
f.write('123')
f.write('n')    # 换行写入文件
f.close()

index()方法

  • 描述:用于检测字符串中子字符串位置,若能找到则返回下标,找不到则返回错误信息
  • 语法str.index(str, beg=0, end=len(string))
    • str:指定检索的字符串
    • beg:开始索引位置,默认为0
    • end:结束索引位置,默认为字符串长度
  • 实例
代码语言:javascript复制
> str1 = "this is string example....wow!!!"
> str2 = "exam"
> print str1.index(str2)
15
> print str1.index(str2, 10)
15
> print str1.index(str2, 40)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

字典返回值

代码语言:javascript复制
> dict = {1:'a', 2:'b'}
> print list(dict.keys()) # key 列表
[1,2]
> print list(dict.values()).index('a') # 对应的序号下标
0
> print list(dict.keys())[list(dict.values()).index('a')] # 对应的列表值
1

0 人点赞