python字符串分片 反转_Python访谈100讲(一)核心基础,面试

本文详细介绍了Python中字符串的基础操作,包括导入模块的方式、字符串连接的各种方法、设置模块搜索路径、字符串的首尾相接、不同进制间的转换、字符串首字母大小写转换、检测字符串是否为数字、反转字符串以及格式化整数和浮点数等核心知识点,适合Python初学者和面试复习。
摘要由CSDN通过智能技术生成

一、 核心基础

1、导入Python模块的基本方式

import、from

import math #导入模块中的所有内容

print(math.sin(1.2))#使用

from math import cos,tan #从模块中导入部分内容

print(cos(2.3))#使用,不需要写模块名,前缀

from math import * #导入模块中的所有内容

2、指定别名

import math as m

print(m.sin(1.2))#原名称不能用

from math import cos as c

print(c(2.3))

3、设置Python模块的搜索路径

(1)设置Python模块的搜索路径有几种方式?

①设置PYTHONPATH环境变量;

②添加.pth文件;

③通过sys.path设置路径;

④如果使用PyCharm,可以直接设置搜索路径。

(2)永久设置Python模块搜索路径有几种方式,如何使用?

① 如果使用PyCharm,可以直接设置搜索路径(文件夹-Mark Directory as-Sources Root(unmark取消);

②控制台添加环境变量;

③添加.pth文件。

(3)如何临时设置Python模块的搜索路径?

①设置PYTHONPATH环境变量(copy path,复制到搜索路径中环境变量处);

②控制台添加环境变量,export PYTHONPATH=路径;

③通过sys.path设置路径。

import sys

sys.path.append('路径')

#临时设置PYTHONPATH(site)

4、不同数据类型的变量或值首尾相接

(1)字符串与字符串连接方式:5种

①加号

s1='hello'

s2='world'

s=s1+s2

print(s)

②直接连接

s='hello''world'

print(s)

③用逗号,连接,标准输出重定位

print('hello','world')

from io import StringIO

import sys

old_stdout=sys.stdout

result=StringIO()#保留老的

print('hello','world')

sys.stdout=old_stdout#恢复标准输出

result_str=result.getvalue()

print("用逗号连接:",result_str)

用逗号连接: hello world

④格式化(更改格式),%前后对应

s=''%(s1,s2)#%前后对应

print('格式化:',s)

⑤join,将列表中的每一个元素通过前面的分隔符连接起来

s="".join([s1,s2])

print("join连接:",s)

(2)字符串与字符串连接方式:3种

①加号,非字符串通过str()转化成字符串

n=20

v=12.3

s=s1+str(n)+str(v)

print(s)

②格式化

s=''%(s1,n,v)#字符串、整型、浮点型

print('格式化',s)

③重定位

from io import StringIO

import sys

old_stdout=sys.stdout

result=StringIO()

print(s1,True,n,v,sep="*")

sys.stdout=old_stdout#恢复标准输出

result_str=result.getvalue()

print("用逗号连接:",result_str)

用逗号连接:hello

True

20*12.3

(3)字符串与对象连接时如何让对象输出特定的内容:如MyClass(类)

class MyClass:

def __str__(self):

return 'This is a MyClass Instance.'

my=MyClass()

s=s1+str(my)

print(s)

5、十进制、二进制、八进制和十六进制之间的相互转换

(1)如何表示不同进制的数值

n1=1234#十进制

n2=0b11101#二进制(0b,不区分大小写)

print(n2)

n3=0o123#八进制(0o)

print(n3)

n4=0xF15#十六进制(0x,0-F)

print(n4)

29

83

3861

(2)进制之间的转换

#十进制转换为二进制(十进制外的格式均为str)

print(bin(120))

#二进制转换为十进制

print(int('10110',2))

#十六进制转换为十进制(前缀无所谓加不加)

print(int('0xF15',16))

#十进制转换为十六进制

print(hex(54321))

#十六进制转换为二进制

print(bin(0xF15))

#二进制转换为十六进制

print(hex(0b1101110101))

#十进制转换为八进制

print(oct(1234))

#八进制转换为十进制

print(int('3213',8))

#不同进制相乘,输出仍为十进制

print(0b11010101*0XF12*0o432*123)

0b1111000

22

3861

0xd431

0b111100010101

0x375

0o2322

1675

28503359244

6、改变字符串(每个单词)首字母的大小写

(1)字符串首字母大小写转换

s1='hello'

print(s1.capitalize())

s1=s1[0:1]+s1[1].upper()+s1[2:]

print(s1)

s2='Hello'

s=s2[0].lower()+s2[1:]

print(s)

Hello

hEllo

hello

(2)如何将字符串中每个单词的首字母变成大写,拆分(按空格)

s3='hello world'

arr=s3.split(' ')#空值拆分每个单词

new_str=f'{arr[0].capitalize()}{arr[1].capitalize()}'

print(new_str)

7、如何检测一个字符串否为数字

(1)如何检测字符串是否为数字(数字和字母混和形式)

s1='12345'

print('是数字',s1.isdigit())#检测是否为数字

print(int(s1))

是数字 True

12345

s2='12345a'

print('12345a是数字:',s2.isdigit())

print('12345a是数字字母混合形式:',s2.isalnum())#检测是否为数字和字母混合

s3='12345_a'

print('12345_a是数字字母混合形式:',s2.isalnum())#下划线不属于字母和下划线

12345a是数字: False

12345a是数字字母混合形式: True

12345_a是数字字母混合形式: True

(2)怎样将一个字符串转换为数字才安全,先用isdigit进行判断

s2='123a'

if s2.isdigit():

print(int(s2))

else:

print('s2不是数字,无法转换')

s2不是数字,无法转换

try:

print(int('222aaa'))

except Exception as e:

print('223aaa不是数字,无法转换')

print(e)

223aaa不是数字,无法转换

invalid literal for int() with base 10: ‘222aaa’

8、如何反转字符串

(1)如何反转字符串

#循环

s1='abcde'

s2=""

for c in s1:

s2=c+s2

print(s2)

a

ba

cba

dcba

edcba

(2)如何用分片反转字符串

print(s1[::2])

print(s1[::-1])#步长设为-1

ace

edcba

9、格式化整数和浮点数

(1)整数格式化

#格式化整数,按10位输出,不足10位前面补0

print(format(n,'10d'))

print(format(n,'0>10d'))

print(format(n,'0<10d'))

20

0000000020

2000000000

(2)格式化浮点数

#格式化浮点数,保留小数点后2位

x1=1.234

x2=32.3

print(format(x1,'0.2f'))#多了截取

print(format(x2,'0.2f'))#不足补0

1.23

32.30

(3)format函数

#描述format函数用法

print(format(x2,'*>15.4f'))#右对齐,15位

print(format(x2,'*<15.4f'))#右对齐,15位

print(format(x2,'*^15.4f')) #中心对齐,15位

print(format(123456789,','))#千位号分割

print(format(123456789.3456789,',.2f'))

print(format(x1,'E'))#科学计数法

print(format(x1,'0.2E'))#科学计数法,保留小数点后2位

32.3000

32.3000

32.3000

123,456,789

123,456,789.35

1.234000E+00

10、你了解Python字符串吗

(1)如何同时在字符串中显示单引号和双引号

print('hello "world"')

print("hello 'world'")

print('"hello"\'world\'')#转义符,\后的输出引号

hello “world”

hello ‘world’

“hello”‘world’

(2)如让转义符失效(3种方法:r、repr和\)

print('Let\'s go!')

print(r'Let\'s go!')#r

print(repr('hello\nworld'))#repr()输出括号中的所有内容

print('hello\nworld')

print('hello\\nworld')#\\

Let’s go!

Let’s go!

‘hello\nworld’

hello

world

hello\nworld

(3)保持原始格式输出字符串:三对单引号或三对双引号

print("""

hello

world

""")

hello

----------- world

–不展示

11、print函数核心功能

(1)用逗号分隔输出的字符串(分隔符)

print("aa","bb",sep="分隔符")

aa分隔符bb

(2)如何让print不换行(设置结尾符号)

print('hello',end=" ")

print('world')

print('hello',end=" 1 ")

print('world')

hello world

hello 1 world

(3)格式化数据(重定义字符串内容)

s='wang'

q=len(s)

print('The length of %s is %d'%(s,q))#对应替换指定格式指定内容

The length of wang is 4

from io import StringIO

import sys

old_stdout=sys.stdout#保留老的

result=StringIO()#输出定位

sys.stdout=old_stdout#恢复标准输出

print('The length of %s is %d'%(s,q))

result_str=result.getvalue()

print('result_str',result_str,sep=':')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值