Python基础的一些习题

Posted 蓝色玛格丽特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础的一些习题相关的知识,希望对你有一定的参考价值。

可变的数据类型:list, dict, set (可修改其中的元素)

不可变的数据类型:str, tuple

重点:str, list, dict

 

列表推导式习题:

# 利用列表推导式: 找出100以内所有奇数,并将所有奇数乘以3,写入列表。
li = [i * 3 for i in range(1, 101) if i % 2 != 0]
print(li)

li = [i * 3 for i in range(1, 101, 2)]
print(li)

 

递归的使用:(经典的猴子吃桃算法)

"""
猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。
第二天又将剩下的桃子吃掉一半,又多吃了一个。
以后每天都吃前一天剩下的一半零一个。
到第10天在想吃的时候就剩一个桃子了,
问:第一天共摘下来多少个桃子?
"""

"""
先进行分析:
第n天:    10      9            8            7
剩(个):  1   (1+1)*2=4   (4+1)*2=10   (10+1)*2=22
"""

def peachs(n):
    if n == 10:
        return 1
    else:
        return (peachs(n + 1) + 1) * 2
print(peachs(1))

没理解递归的话,看下面这个方案:

n = 1  #
x = 1  # 桃子几个
while n < 10:  # 第9天发现只剩了一个
    x = (x + 1) * 2
    n += 1
print(x)

 

‘‘‘
定义一个函数:
统计传入的字符串里,英文字母、空格、数字和其他字符分别出现次数,
并作为一个字典返回   {‘字母‘:  ,‘空格‘:   ,‘数字‘:   ,‘其他字符:‘ }
‘‘‘

def count_types(s):
    # 先定义一个字典
    dict = {"字母": 0, "空格": 0, "数字": 0, "其他字符": 0}

    # 遍历取出字符串中每个值
    for i in s:
        if i.isalpha():
            dict["字母"] += 1  # 键值访问,直接自加
        elif i.isspace():
            dict["空格"] += 1
        elif i.isdigit():
            dict["数字"] += 1
        else:
            dict["其他字符"]+=1
    return dict

print(count_types("jing tian 520.1314!"))

 

"""
请定义一个名为titles的函数:
    1.接收一句英文(字符串)作为参数
    2.将这个英文的每个单词转换成有且只有首字母大写的形式
    3.返回转换后的英文句
    4.str.title具有这个功能,但在此题不可使用str.title 
例如:
>>> titles(‘this is python.‘)
‘This Is Python.‘
>>> titles(‘i love python‘)
‘I Love Python‘
"""

# 利用列表推导式+lambda函数 一行代码搞定
# 可读性差,尽量避免写(但我个人比较喜欢这样,感觉眼前一亮,豁然开朗) s1 = "this is python." s2 = " i love jing tian " g = lambda s: " ".join([i.capitalize() for i in s.split()]) print(g(s1)) print(g(s2))

 


以上是关于Python基础的一些习题的主要内容,如果未能解决你的问题,请参考以下文章

Python一些基础练习题

这些Python基础练习题你会几个?

Python基础练习题,含答案解析

Python练习题(基础知识练习题)

老男孩python基础知识练习题中

算法零基础学习关于二维数组的一些基础练习题 | leetcode1672158283248题解