python初学者练习题(一)

1、判断一个数是否是素数 

【思路:素数:只能被1和它本身整除的数】

def check_prime(num):
    for i in range (3,num+1):
        for j in range(2,i):
            if i % j == 0:
                f = -1
                break
            else:
                f = 1
    if f == -1:
        return False
    else:
        return True
# 输入一个整数
number = int(input())

# 调用函数
print(check_prime(number))

 2、 编写一个程序来求一个给定数字的所有因数

定义函数find_all_factors(),参数为num。

在函数内部,返回一个列表,列表中的数字是输入数字num的所以因数。

如果输入数字小于1,则返回一个空列表。 返回列表中的数字需要从小到大排序。

【思路:因数:一个数字的因数是能整除这个数字的数字,如8的因数有1、2、4、8。

  先将一整串数字一个一个拆分,如果能被整除,则添加到列表中】

def reverse_number_digits(num):
    li = []
    s = 0
    for i in range(num):
        if num > 0:
            s = num % 10 #获取每一位的值
            num = num // 10
            li.append(s)
        else:
            break
    return li
# 获取用户输入
num = int(input())

# 调用函数
print(reverse_number_digits(num))

3、编写一个程序,用于在一组整数中找出唯一的数字。假设列表中只有一个唯一的数字。

# 定义函数find_unique_number(),参数为num_list,数字列表。

# 在函数内部,找出只出现一次的数字,并返回它。

# 如果列表只有一个数字,则返回该数字。 # 如果列表为空,则返回None。

# 如果不存在这样的数字,则返回None。

【思路:可以使用Python中的Counter类来实现这个功能。 Counter类可以用来计算一个列表中每个元素出现的次数。 我们可以遍历一遍列表,使用Counter类来计算每个数字出现的次数, 然后再遍历一遍列表,找到只出现一次的数字并返回它。

from collections import Counter
def find_unique_number(num_list):
    if len(num_list) == 1:
        return num_list[0]
    elif len(num_list) == 0:
        return None
    else:
        count = Counter(num_list)
        for num in num_list:
            if count[num] == 1:
                return num
        return None
# 将输入的整数转换为列表
numbers = list(map(int, input().split()))

# 调用函数
print(find_unique_number(numbers))

4、编写一个Python程序来确定字符串中的所有字符是否相同。

  定义函数is_string_identical(),参数为text_string(字符串)。

 在函数内,如果字符串中的所有字符都相同,则返回True,否则返回False

【思路】:可以通过将字符串转换为集合(set)来判断所有字符是否相同。 如果集合的长度为1,则说明所有字符都相同。

具体实现方法如下: def all_chars_same(s):

                                         return len(set(s)) == 1        

其中,set(s)将字符串s转换为集合, len()函数返回集合的长度,如果长度为1,则说明所有字符都相同

def is_string_identical(text_string):
    return len(set(text_string)) == 1
   
# 获取输入 
text_string = input()
# 调用函数 
print(is_string_identical(text_string))

5、编写一个Python程序,找出列表中第n小的整数。

定义函数find_nth_smallest(),该函数接受整数列表numbers_list和整数n作为参数。

在函数内部,返回列表中第n小的整数。

如果n大于列表的长度,则返回None

import heapq
def find_nth_smallest(numbers_list, n):
    if n > len(numbers_list):
        return None
    else:
        return heapq.nsmallest(n,numbers_list)[-1]
        
# 将输入的整数转换为列表
numbers_list = list(map(int, input().split()))
# 获取n的输入
n = int(input())
# 调用函数
print(find_nth_smallest(numbers_list, n))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Swallow_L02

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值