Python进阶练习题,新手快码起来

Python进阶练习题,新手快码起来,第1张

Python进阶练习题,新手快码起来

这里有8题进阶练习题,师弟师妹们快码起来吧~

随机密码生成器

目标:创建一个程序,可指定密码长度,生成一串随机密码。
提示:创建一个数字+大写字母+小写字母+特殊字符的字符串。根据设定的密码长度随机生成一串密码。

代码:

import random
import string

def passwordf():
    
    list_ = list(string.ascii_letters)+list(string.digits) + list("!@#$%^&*,./;=+-()") #大小字母+数字+特殊符号
    n = int(input()) #n位密码
    password = []
    password = random.sample(list_, n)
    password_middle = [str(i) for i in password]
    password_end = ''.join(password_middle)    
    print(password_end)
    
passwordf()

运行结果:

求二元一次方程 2x+5y=100 的所有正整数解

通常二元一次方程有无穷多个解,但在限定了条件后,如本题中限定了 x 和 y 必须是正整数,解的个数就是有限的。
输入:没有输入
输出:本题有若干组解,在每行输出一组解,两个数之间以空格来分隔

代码:

# 遍历求解
# x取值最大为50,y取值最大为20
for x in range(51):
    for y in range(21):
        if 2*x+5*y==100:
            print(x,y)

运行结果:

字符串的逆序输出

写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。
输入:一行字符
输出:逆序后的字符串

代码:

def string_reverse():
    string = input("请输入一行字符:")
    string_reversed = []
    for i in range(len(string)-1,-1,-1):
        string_reversed.append(string[i])
    print(''.join(string_reversed))
string_reverse()

运行结果:

数字反转

用户可以输入任意一个整数或小数,输出各位反转后的数字。原数字如果末尾是0则结果应去除开头的0,原数字如果是负数则结果应保留负号。
示例输入1:
365
示例输出1:
563
示例输入2:
3.14
示例输出2:
41.3

代码:

def digits_reversed():
    num = input("请输入任意一个整数或小数:")
    digits_reversed = []
    if num[0] == '-':
        digits_reversed.append('-')
        num = num[1:]
    for i in range(len(num)-1,-1,-1):
        digits_reversed.append(num[i])
    print(float(''.join(digits_reversed)))

digits_reversed()

运行结果:

从数组中找出最小的数

从 8 个整数中,寻找最小的数并输出。例如,8 个整数为
4、9、12、7、13、88、-6、12,则最小的数为 -6。

代码:

def get_min_num(num_list):
    min_num = num_list[0] #假设第一个数为最小
    for i in num_list:
        if i < min_num:
            min_num = i
    print(min_num)
    
get_min_num([4,9,12,7,13,88,-6,-12])

运行结果:

将数字按照大小插入到数组中

已有一个已排好的 9 个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
输入:第一行,原始数列。 第二行,需要插入的数字。
输出:排序后的数列
样例输入
1 7 8 17 23 24 59 62 101
50
样例输出
1 7 8 17 23 24 50 59 62 101

代码:

def sort_values():
    array = list(map(int,input().split()))
    num = int(input())
    for i in range(len(array)):
        if array[i] > num :
            index = i
            break
    array.insert(index,num)
    print(*array,sep=' ')

sort_values()

运行结果:

lambda 函数

列表 L = [(92,88), (79,99), (84,92), (66, 77)]有 4 项数据,每项数据表示学生的语
文和数学成绩。求数学成绩最高的学生的成绩。提示:应用 max 函数,然后设计 lambda 函数来实现, max(L, key=lambda ________ ) 。

代码:

L = [(92,88),(79,99),(84,92),(66, 77)]
math_max = max(L,key=lambda x:x[1])
print(math_max[1])

运行结果:

生成字符串

编写生成字符串的程序,运行时输入一段英文文本,输出由该段文本开头两个和末尾两个字符组成的新字符串。如果输入的文本长度小于2,则返回EmptyString
示例输入1:
w3resource
示例输出1:
w3ce
示例输入2:
w3
示例输出2:
w3w3

代码:

def get_new_str():
    string = input()
    str_len = len(string)
    if str_len<2:
        print('EmptyString')
    elif str_len==2:
        print(string+string)
    else:
        print(string[:2]+string[-2:])
        
get_new_str()

运行结果:

原创不易,觉得不错请给个点赞~

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5679672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存