当前位置:   article > 正文

python123 从入门到精通挑战台

python123

1.语言基础

1.6 map函数()

map是python内置函数,会根据提供的函数对指定的序列做映射
map()函数的格式是:
map(function,iterable,...)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。

把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。

map函数实例

当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:
map函数里面的函数参数也可以添加lambda函数()

#获取用户输入的整数n,
#输出所有小于 n 的非负整数 i 的平方( 0 <= i < n )。
n = eval(input())
print(list(map(lambda x: x * x, range(n))))
  • 1
  • 2
  • 3
  • 4

通过map还可以实现类型转换
将元组转换为list:

map(int,(1,2,3))
# 结果如下:
[1,2,3]
  • 1
  • 2
  • 3

将字符串转换为list:

map(int,'1234')
# 结果如下:
[1,2,3,4]
  • 1
  • 2
  • 3

`提取字典中的key,并将结果放在一个list中:

map(int,{1:2,2:3,3:4})
# 结果如下
[1,2,3]
  • 1
  • 2
  • 3

1.7 (函数)类型建议符

def twoSum(num1: int, num2: int=100) -> int:
  • 1

函数参数中的冒号是参数的类型建议符,告诉函数调用者希望传入的实参的类型。函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。

1.8 round函数

round(x,[,n])
#x为数字表达式,n为小数点后保留几位数,方括号表示默认为零
  • 1
  • 2

1.9 f-string

f-strings 提供了一种简洁方便的方式来将 Python 表达式嵌入到字符串文字中以进行格式化。

 year = 2016
 event = 'Referendum'
f'Results of the {year} {event}'
# 输出结果:'Results of the 2016 Referendum'
  • 1
  • 2
  • 3
  • 4

1.11 python enumerate用法总结

函数说明:

  1. enumerate在字典上是枚举、列举的意思
  2. 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
  3. enumerate多用于在for循环中得到计数

对一个列表,既要遍历索引又要遍历元素时

list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
    print i ,list1[i]
  • 1
  • 2
  • 3

enumerate()方法:

list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
    print index, item
>>>
012 一个
3 测试
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.基础数据结构

2.6 编写一个 Python 程序来接受用户输入的文件名,然后打印文件名和扩展名。

def extract_extension(file_name: str) -> str:
    """提取文件扩展名称"""
    extension_name = file_name.split(".")[-1]
    return extension_name

text = input()
print(f"输入文件名:{text} 文件的扩展名是:{extract_extension(text)}")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.7 编写一个 Python 程序打印 az 和 AZ 的英文字母。

from string import ascii_lowercase
from string import ascii_uppercase

for lowercase, uppercase in zip(ascii_lowercase, ascii_uppercase):
    print(f"| {lowercase} - {uppercase} |")
#zip 使用压缩文件遍历输出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.8 python字符串原地逆转

text = input()
print(text[::-1])
  • 1
  • 2

2.9 字符处理

text = text.strip()  # 去除前后空格

text = " blisdd,bsDisd,SDefs,ahdhjlid,sEfds "

text = text.strip()  # 去除前后空格

text_lst = text.split(",")
count = 0
for i in text_lst:
    if i[0] == "b" and i[-1] == "d" and "is" in i:
        print(f"将符合条件的字符串转化为小写 {i.lower()}")
        print(f"将符合条件的字符串转化为大写 {i.upper()}")
        count += 1
print(f"字符串中共有符合条件的字符串 {count} 个")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3.结构

3.15

isalpha():  # isalpha() 方法检测字符串是否只由字母组成
isdigit():  # 如果 string 只包含数字则返回 True 否则返回 False
isspace():  # 如果 string 中只包含空格,则返回 True,否则返回 False.
  • 1
  • 2
  • 3

3.19

	try:
        C = (eval(TempStr[0:-1]) - 32) / 1.8
        print("{:.2f}C".format(C))
    except SyntaxError:
        print("输入格式错误")

#异常输入
try:
    s = "零一二三四五六七八九"
    i = eval(input())
    print(s[i])
except IndexError:
    print("请输入0~9之间的数")
except TypeError:
    print("请输入整数")
except NameError:
    print("请输入正确的名称")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

4.4素数判断

def is_prime(n: int) -> bool:
    """素数判断"""
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    else:
        return True
      
#以下是main函数找出最大的素数
def main(n: int) -> list:
    """统计"""
    lst = []
    count = 0
    for i in range(n, 1, -1):
        if is_prime(i):
            lst.insert(0, i)
            count += 1
        if count == 10:
            return lst
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

4.4 Python 默认的最大递归深度为 998,在有些情况下是不够的,修改一个 Python 递归函数程序,解决最大递归深度问题。

sys.setrecursionlimit(limit)

    #将 Python 解释器堆栈的最大深度设置为 limit。此限制可防止无限递归导致的 C 堆栈溢出和 Python 崩溃。
    
    #不同平台所允许的最高限值不同。当用户有需要深度递归的程序且平台支持更高的限值,可能就需要调高限值。进行该操作需要谨慎,因为过高的限值可能会导致崩溃。
    
    #如果新的限值低于当前的递归深度,将抛出 RecursionError 异常。
    
    #在 3.5.1 版更改: 如果新的限值低于当前的递归深度,现在将抛出 RecursionError 异常。
    #用斐波那契数列测试递归更改
    import sys

sys.setrecursionlimit(2000)


def fib(n):
    if n == 1:
        return 1
    else:
        return fib(n - 1) + n


print(fib(1000))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

4.4 Python ord()是什么?

ord()函数主要用来返回对应字符的ascii码

4.15 编写一个 Python 标签装饰器函数,为hello()函数添加

标签和

标签:

def make_p(fn):
    """段落"""
    def wrapped():
        return "<p>" + fn() + "</p>"
    return wrapped


def make_h1(fn):
    """标题"""
    def wrapped():
        return "<h1>" + fn() + "</h1>"
    return wrapped


@make_p
@make_h1
def hello():
    return "hello world"


print(hello())

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/432864
推荐阅读
相关标签
  

闽ICP备14008679号