跳至主要內容

墩墩大题5「嘉兴大学Python期末补救计划」

AI悦创原创Python 一对一教学嘉兴大学PythonPython 一对一教学嘉兴大学Python大约 7 分钟...约 2000 字

Question 1

使用 for 循环统计输出 100~300 之间的所有素数及素数个数。

def nono(*args):
    with open(r"out1.dat", "w", True, encoding="utf-8") as f:
        f.write(" ".join(list(map(str, [*args]))))

i,j,count = 0, 0 ,0	
'''
/***********begin***********/'''









'''
/***********end************/'''
print("count={}".format(count))

nono(count)

Solution 1

以下是完成你的任务的代码。这段代码将找到100到300之间的所有素数,并统计它们的数量。

1
def nono(*args):
    with open(r"out1.dat", "w", True, encoding="utf-8") as f:
        f.write(" ".join(list(map(str, [*args]))))


'''
/***********begin***********/
'''


def is_prime(n):
    if n <= 1:
        return False
    if n <= 3:
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i + 2) == 0:
            return False
        i += 6
    return True


i, j, count = 0, 0, 0

for num in range(100, 301):
    if is_prime(num):
        print(num)
        count += 1
'''
/***********end************/
'''
print("count={}".format(count))

nono(count)

在这段代码中,我们定义了一个帮助函数 is_prime(n) 来检查一个数字是否是素数。然后,我们在100到300的范围内遍历每一个数,如果该数是素数,我们就打印它并增加计数器 count。最后,我们将素数的总数写入文件 "out1.dat" 并打印出来。

Question 2

输入一个字符串,将其中所有数字字符组成新字符串并倒置输出。

s = input()
str1 = ''
# found
for i in range(1, len(s) + 1):
    if '0' <= s[i] <= '9':
        str1 += s[i]

# found
print(str1[::])

Solution 2

这段代码试图从给定的字符串中抽取数字,然后将这些数字以原顺序组合为新的字符串。然而,代码有几个错误:

  1. Python的索引是从0开始的,而不是从1开始。因此,你需要将for循环的范围从range(1, len(s) + 1)改为range(0, len(s))

  2. 代码中的print(str1[::])只会打印出原顺序的字符串,而不是倒置的字符串。要倒置字符串,需要使用[::-1]

以下是改正后的代码:

s = input()
str1 = ''
# found
for i in range(0, len(s)):
    if '0' <= s[i] <= '9':
        str1 += s[i]

# found and reverse
print(str1[::-1])

这段代码会做以下几件事情:

  1. 从用户那接收一个字符串。
  2. 遍历字符串中的每一个字符,检查字符是否是一个数字。
  3. 如果字符是数字,就将它添加到字符串str1
  4. 在收集完所有数字之后,倒置字符串str1并打印出来。

Question 3

统计字符串中所有小写字母的个数并输出。

例如,当字符串为“This Is a Python Program“

输出:16

pre_str = "RmhSHOVBhSRVtTZNIYFLHCePZOevISURBoqUBKNyItReKwrxYkaihWJFmhUKZZsPWgrxAkjIvbZDdEnDQthsInXZDKFOhHICNLF"
count = 0

'''
/***********begin***********/
'''



'''
/***********end***********/
'''
print("count={}".format(count))

Solution 3

这个问题可以通过Python内建函数islower()解决,islower()会检查字符串中的所有字符是否都是小写。如果是,就返回True,否则返回False

在这个例子中,我们将使用for循环遍历字符串中的每一个字符,如果这个字符是小写,就把计数器加一。

这是完成任务的代码:

pre_str = "RmhSHOVBhSRVtTZNIYFLHCePZOevISURBoqUBKNyItReKwrxYkaihWJFmhUKZZsPWgrxAkjIvbZDdEnDQthsInXZDKFOhHICNLF"
count = 0

'''
/***********begin***********/
'''
for char in pre_str:
    if char.islower():
        count += 1
'''
/***********end***********/
'''
print("count={}".format(count))

这段代码将输出字符串pre_str中小写字母的个数。

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度