程序设计基础实验破解(5)

一.前言

我上大一时接触到程序设计基础这门课,这门课有时会有实验,我便常常摸鱼,利用CSDN来做,

虽然有时搜不到,但每次搜到时我想:爽!!!

于是我也开始写,写下我们这个时期的答案与青春

二.实验与答案

1.输入一个正整数,输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0,例如,输入65000,输出应该为56。输入也可能是负数。

【程序示例】

程序设计基础实验破解(5)_第1张图片

【程序代码】-方法一

num = input("请输入一个正整数:")  # 输入一个正整数的字符串

if int(num)<=0:

    print("输入的数不是正整数,程序结束!")

else:

print(f'逆序数字是:{int(num[::-1])}')  #对字符串逆序,再转整型,int()函数可去除整数前面的前导0

【程序代码】方法二

num = input("请输入一个正整数:")          # 输入一个正整数的字符串

if int(num)<=0:

    print("输入的数不是正整数,程序结束!")

else:

print(f"逆序数字是:{(num[::-1]).lstrip('0')}")  #lstrip('0')去除字符串左侧的字符'0'

2、123321是一个非常特殊的数,从左边读和从右边读是一样的,这样的数称为回文数。输入一个正整数n(1<=n<=54),编程求各位数字之和等于n的5位和6位十进制回文数。按从小到大的顺序输出满足条件的整数。如果输入的数不在指定的范围内,输出“输入有误,请重新输入!”,如果没有各位之和与输入的数相等的5位和6位回文数,输出“无满足条件的数!”

【提示】程序开始可以定义一个循环,判断输入的正整数是否在(1<=n<=54)内,如果不在,连续输入,直到符合条件为止。

程序设计基础实验破解(5)_第2张图片

【程序代码】

def isHuiWen(num):

    if str(num)==str(num)[::-1]:

        return True

    else:

        return False

def getSum(num):

    s=0

    for x in str(num):

        s=s+int(x)

return s

n=int(input("请输入一个正整数:"))

while n<0 or n>54:

    n=int(input("输入有误,请重新输入!"))

   

flag=0

for num in range(10**4,10**6):

    if isHuiWen(num) and n==getSum(num):

        flag=1

        print(num,end="   ")

if flag==0:

    print("无满足条件的数!")

3、用户输入一个字符串作为密码,判断密码强度,规则为:
# 密码长度小于8 为弱密码,
# 密码长度大于等于8
#     且包含至少2 种字符为中等强度
#     密码包含3 种字符为强
#     包含全部4 种字符为极强。

【提示】四种字符:

# string.digits 可返回'0123456789'

# string.ascii_lowercase 可返回'abcdefghijklmnopqrstuvwxyz'

# string.ascii_uppercase 可返回'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

# string.punctuation 可返回'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

【程序示例】

程序设计基础实验破解(5)_第3张图片

【程序代码】

import string

pwd = input("请输入密码:")# 输入一个正整数的字符串

#记录密码种类变量

digit=lower=upper=punc=0

for c in pwd:#判断密码种类

    if c in string.digits:

        digit=1

    elif c in string.ascii_lowercase:

        lower=1

    elif c in string.ascii_uppercase:

        upper=1

    elif c in string.punctuation:

        punc=1

       

kinds=digit+lower+upper+punc #密码种类

if len(pwd)<8:

    print("密码长度小于8:弱密码!")

elif kinds<2:

    print("密码长度大于8,字符种类少于2:弱密码!")

elif kinds==2:

    print("密码长度大于8,字符种类为2:中等强度密码!")

elif kinds==3:

    print("密码长度大于8,字符种类为3:强密码!")

elif kinds==4:

print("密码长度大于8,字符种类为4:极强密码!")

4、编写程序,计算s=a+aa+aaa+……+aaa…aaa的值,其中a是1-9之间的某个数字,n是一个正整数。例如,当a=2,n=5时,s=2+22+222+2222+22222=24690。

【提示】方法一:如果item表示当前项且为数值型,则下一项为item*10+a。

        方法二:利用字符串的乘法特性,如”2”*2的值为”22”,”2”*3的值为”222”。如果a=2,则第二项为int(str(a)*2),第三项为int(str(a)*3),第四项为int(str(a)*4),第n项为int(str(a)*n)。

程序设计基础实验破解(5)_第4张图片

【程序代码】

方法一:

a,n=eval(input("请输入a,n的值"))

s=0

for i in range(1,n+1):

     s=s+int(str(a)*i)

print("值为:",s)

方法二

a,n=eval(input(“请输入a,n的值”))  #不加()也认为是元组

s=0

item=0

for i in range(1,n+1):

      item=item*10+a

      s=s+item

print("值为:",s)

你可能感兴趣的:(python,开发语言)