【Python3】练习四

4 阅读3分钟

分解质因数

题目 将一个整数分解质因数。例如:输入90,打印出90=233*5

# 输入一个整数
target=int(input('输入一个整数:'))
# 打印输入的整数
print(target,'= ',end='')

# 如果输入的整数小于0,则将其转换为正数
if target<0:
    target=abs(target)
    # 打印负号
    print('-1*',end='')

# 初始化标志位
flag=0
# 如果输入的整数小于等于1,则直接打印该整数
if target<=1:
    print(target)
    # 将标志位设置为1
    flag=1


# 循环,直到标志位为1
while True:
    # 如果标志位为1,则跳出循环
    if flag:
        break
    # 从2开始循环,直到输入的整数
    for i in range(2,int(target+1)):
        # 如果输入的整数能被i整除,则打印i
        if target%i==0:
            print("%d"%i,end='')
            # 如果输入的整数等于i,则将标志位设置为1
            if target==i:
                flag=1
                break
            # 打印乘号
            print('*',end='')
            # 将输入的整数除以i
            target/=i
            # 跳出循环
            break

为了继续寻找下一个因数,需要将target更新为target/i。这样,下一个循环就可以检查新的target是否可以被其他因数整除。

因此,target /= i这一步是因数分解过程中的关键步骤,用于更新target的值,使其逐渐接近1,最终完成因数分解。

分数归档

题目 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示

points=int(input('输入分数:'))
if points>=90:
    grade='A'
elif points<60:
    grade='C'
else:
    grade='B'
print(grade)

输出日期

题目 使用 datetime 模块

# 导入datetime模块
import datetime
# 打印当前日期
print(datetime.date.today())
# 打印指定日期
print(datetime.date(2333,2,3))
# 打印当前日期,格式为dd/mm/yyyy
print(datetime.date.today().strftime('%d/%m/%Y'))
# 定义一个日期
day=datetime.date(1111,2,3)
# 将日期的年份加22
day=day.replace(year=day.year+22)
# 打印修改后的日期
print(day)

字符串构成

题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

# 输入字符串
string=input("输入字符串:")
# 定义字母、数字、空格和其他字符的计数器
alp=0
num=0
spa=0
oth=0
# 遍历字符串中的每个字符
for i in range(len(string)):
    # 如果字符是空格,则空格计数器加1
    if string[i].isspace():
        spa+=1
    # 如果字符是数字,则数字计数器加1
    elif string[i].isdigit():
        num+=1
    # 如果字符是字母,则字母计数器加1
    elif string[i].isalpha():
        alp+=1
    # 如果字符不是空格、数字或字母,则其他字符计数器加1
    else:
        oth+=1
# 输出空格、数字、字母和其他字符的计数结果
print('space: ',spa)
print('digit: ',num)
print('alpha: ',alp)
print('other: ',oth)

复读机相加

题目 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制

# 被加数字
a=input('被加数字:')
# 加几次
n=int(input('加几次?:'))
# 结果
res=0
# 循环n次
for i in range(n):
    # 将被加数字加到结果中
    res+=int(a)
    # 将被加数字的第一个数字加到被加数字的末尾
    a+=a[0]
# 输出结果
print('结果是:',res)