python list去掉引号_最新的python面试题集170之三(基础性学习)

e8b37a6565d53a102c998a68948cabb7.png

10.了解Python3的类型注解么?

答:在 Python 3.5 中,Python PEP 484 引入了类型注解(type hints)

类型注解(type hints)的好处是:

1).让别的程序员看得更明白。

2).让 IDE 了解类型,从而提供更准确的代码提示、补全和语法检查(包括类型检查,可以看到 str 和 float 类型的参数被高

亮提示)

3).这种类型注解实际上只是一种类型提示,对运行实际上是没有影响的,

比如调用 add 方法的时候,我们传入的不是 int 类型,而是一个 float 类型,它也不会报错,也不会对参数进行类型转换。

4).如:

def add(x:int, y:int) -> int: return x + yprint(add.__annotations__)

#在add.__annotations__,在函数的 __annotations__ 属性中会有你设定的注解。

图1

f76c4c57f81604ea8f8448fd5956e5ef.gif

11.例举你知道 Python 对象的命名规范,例如方法或者类等。

答:

(1)类:总是使用首字母大写单词串,如 MyClass。内部类可以使用额外的前导下划线。

(2)变量:小写,由下划线连接各个单词。方法名类似.

(3)常量:常量名所有字母大写等。

12.Python 中的注释有几种?

答:总体来说分为两种,单行注释和多行注释。

(1)单行注释在行首是 #。

(2)多行注释可以使用三个单引号或三个双引号,包括要注释的内容。

图2

00f1d7bffeaa71010a8f70a1f7dde0b3.png

13.如何优雅的给一个函数加注释?

答:可以使用 docstring 配合类型注解。

函数注释通常在 def 语句下方,第一行表示函数用法,接下来对函数接受的参数进行解释,

最后对函数的返回值进行注释,方便他人理解函数的用法。

14.如何给变量加注释?

答:可以通过变量名:类型的方式如下

a: str = "this is string type"

15.Python 代码缩进中是否支持 Tab 键和空格混用。

答:不允许tab键和空格键混用,这种现象在使用 sublime 的时候尤为明显。一般推荐使用 4 个空格替代 tab 键。

16.是否可以在一句 import 中导入多个库?

答:可以是可以,但是不推荐。因为一次导入多个模块可读性不是很好,所以一行导入一个模块会比较好。

同样的尽量少用 from modulename import *,因为判断某个函数或者属性的来源有些困难,不方便调试,可读性也降低了。

17.在给 Py 文件命名的时候需要注意什么?

答:给文件命名的时候不要和标准库库的一些模块重复,比如 abc。 另外要名字要有意义,不建议数字开头或者中文命名。

使用全小写或者下划线进行命名。

18.例举几个规范 Python 代码风格的工具

答:pylint 和 flake8、YAPF,谷歌开发的代码规范工具。

Black,依赖Python3.6+的第三方库,可以直接将原代码变为符合PEP8标准的代码。

数据类型

字符串

19.列举 Python3 中的基本数据类型?

答:六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

我们所说的"类型"是变量所指的内存中对象的类型。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:

counter = 100 # 整型变量miles = 1000.0 # 浮点型变量name = "runoob" # 字符串print (counter)print (miles)print (name)

20.如何区别可变数据类型和不可变数据类型

答:以下所有的内容都是基于内存地址来说的。

  不可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,

对于这种数据类型,就称不可变数据类型。

  可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,

对于这种数据类型,就称可变数据类型。

  总结:不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变。

-----------------------------

在python中数据类型有:整型,字符串,元组,集合,列表,字典。

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

----------------------------

21.将"hello world"转换为首字母大写"Hello World"

打开终端,进入python3.8

输入:

arr = "hello world".split(" ")new_str = f"{arr[0].capitalize()} {arr[1].capitalize()}"print(new_str)

Hello World

22.如何检测字符串中只含有数字?

答:Python的语法,字符串类型自带函数isdigit(),当字符串中只存在数字返回True,反之返回False。

可以综合使用any和isdigit方法:

def hasNumbers(inputString):

... return any(char.isdigit() for char in inputString) #return与has对齐,但在def之后

... #要回车下去

>>> hasNumbers("I own 1 dog")

True

>>> hasNumbers("I own no dog")

False

可以使用正则表达式:

>>> import re

>>> def hasNumbers(inputString):

... return bool(re.search(r'd', inputString)) #return与has对齐,但在def之后

... #要回车下去

>>> hasNumbers("I own 1 dog")

True

>>> hasNumbers("I own no dog")

False

图3

fccf25887abed67dccb81270125b3523.png

23.将字符串"ilovechina"进行反转

答:

s1 = "ilovechina"[::-1]

print(s1)

结果:

anihcevoli

24.Python 中的字符串格式化方式你知道哪些?

答:format()是最先进的。

三种字符串格式化方法

1).最方便的

print ('hello %s and %s' % ('df', 'another df'))

结果:

hello df and another df

2).最好用的

print('hello %(first)s and %(second)s' % {'first':'df', 'second':'another df'})

结果:

hello df and another df

3).最先进的

print ('hello {first} and {second}'.format(first='df', second='another df'))

结果:

hello df and another df

图4

c2f6f570e38c27d97366cf20aaada29e.png

25.有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。

答:

方法一:

def strip(string): start, end = 0, -1 length = len(string) for i in range(length): if string[i] != ' ': start = i break for j in range(-1, -length, -1): if string[j] != ' ': end = length + j + 1 break  return string[start:end]s = ' adabdw 'print(s)

方法二:

def strip_function(s1): return s1.strip()s1 = " adabdw "print(strip_function(s1))

26.获取字符串”123456“最后的两个字符。

答:“123456”[4:6:]或“123456"[-2::]

即:

a = "123456"

print(a[4:6:])

或者

print(a[-2::])

27.一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?

答:

a= "S".encode("gbk").decode("utf-8",'ignore')print(a)

28.

(1)s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', 'shandong']

我们需要根据冒号或者空格切分

import res = "info:xiaoZhang 33 shandong"res = re.split(r":| ", s)print(res)

(2) a = "你好 中国 ",去除多余空格只留一个空格。

答:

s = "你好 中国 "print(" ".join(s.split()))

29. (1)怎样将字符串转换为小写

答:

(1) 使用字符串的 lower() 方法。

(2)单独使用单引号和双引号没什么区别,但是如果引号里面还需要使用引号的时候,

就需要这两个配合使用了,然后说三引号,同样的三引号也分为三单引号和三双引号,

两个都可以声名长的字符串时候使用,如果使用 docstring 就需要使用三双引号。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值