Python前期超全练习题(下),包含嵩天老师,Python123等

程序控制结构

大小写转换

# 请使用 input() 输入一个英文字母 char
char=input("")
if ord(char)>=65 and ord(char)<97:
    print(chr(ord(char)+32))
else:
    print(chr(ord(char)-32))
# 请实现英文字母的大小写转化

判断位数并打印各位的值

# 请使用 input() 输入一个不多于五位的正整数 num
num=int(input())

# 请计算这个正整数的位数,并将每一位的数字都打印出来。
num1=str(num)
num_list=list(num1)
n=len(num1)
if n==1:
    print("一")
    print(num)
elif n==2:
    print("二")
    for i in range(n):
        print(num_list[i],end=" ")
elif n==3:
    print("三")
    for i in range(n):
        print(num_list[i],end=" ")
elif n==4:
    print("四")
    for i in range(n):
        print(num_list[i],end=" ")
          
elif n==5:
    print("五")
    for i in range(n):
        print(num_list[i],end=" ")

地铁车票

# 请使用 input() 输入乘坐的人数 per_num 和站数 sta_num
per_num=int(input())
sta_num=int(input())

if per_num<=0 or sta_num<=0:
    print("error")
else:
    if 1<=sta_num<=4:
        pm=3
    if 5<=sta_num<=9:
        pm=4
    if sta_num>9:
        pm=5
    count=pm*per_num
    print(count)

考试评级

# 请使用 input() 输入考试成绩 score
score = int(input('请输入考试成绩: '))
if score>=0 and score<60:
    print("E")
elif score>=60 and score<70:
    print("D")
elif score>=70 and score<80:
    print("C")
elif score>=80 and score<90:
    print("B")
elif score>=90 and score<=100:
    print("A")
# 请判断成绩属于哪个级别

判断星期

# 请使用 input() 输入单词的前两个字母 chars
chars = input()
if chars=='mo':
    print("monday")
elif chars=='tu':
    print("tuesday")
elif chars=='we':
    print("wednesday")
elif chars=='th':
    print("thursday")
elif chars=='fr':
    print("friday")
elif chars=='sa':
    print("saturday")
elif chars=='su':
    print("sunday")
else:
    print("error")


# 请判断输入的是星期几,并输出对应的单词

身体质量指数BMI

height = float(input())
weight = float(input())
BMI=weight/(height*height)
# 计算bmi值并将判断结果输出
print("BMI数值为:{:.2f}".format(BMI))
if BMI<18.5:
    print("BMI指标为:国际'偏瘦',国内'偏瘦'")
elif BMI>=25 and BMI<30:
    print("BMI指标为:国际'偏胖',国内'偏胖'")

阶乘

# 请使用 input() 输入一个正整数 num


# 请计算这个正整数的阶乘,并将计算结果输出

num = int(input())
a = 1
for i in range(1, num+1):
    a = a*i
print(a)

水仙花数

# 请使用 input() 输入一个三位数 num
num=eval(input())

# 请找出 100 - num(含) 中的所有水仙花数,并将找出的水仙花数输出
for num in range(100,num):
    a=num//100
    b=(num//10)%10
    c=num%10
    if num==(a*a*a+b*b*b+c*c*c):
        print(num)
        

猴子摘桃

# 请使用 input() 输入一个天数 day
day = int(input('请输入一个天数: '))
n=2
# 请计算第 day 天猴子摘的桃子个数,并将结果输出
for i in range(2,day+1):
    n=2*n+1
print(n)

素数

# 请使用 input() 输入一个整数 num
num = int(input('请输入一个整数: '))
for i in range(2,num+1):
    flg = 0
    for j in range(2,i): #
        if not(i%j):
            flg = 1
            break
    if(flg == 0):
        print(i)
# 输出 1 - num(含) 中的所有的素数

随机密码生成

# 请在...补充代码
import random

def genpwd(length):
    

length = eval(input())
random.seed(17)
for i in range(3):
    print(genpwd(length))

圆周率计算

import time
import random
count = 0
t = time.perf_counter()
n = 1000*1000
for i in range(n):
    x,y = random.random(),random.random()
    if pow(x**2+y**2,0.5) <= 1:
        count = count + 1
pi = 4*(count/n)
t =time.perf_counter()-t 
print("圆周率为{}".format(pi))
print("运行时间为{}".format(t))

求pi近似值

e = float(input().strip())

# 请根据 e 计算 pi 的近似值
n,s,t,pai=1,1,1,0.0
while True:
    t=1/(2*n-1)
    pai+=s*t
    if t<e:
        break
    n+=1
    s=-s
pai*=4
print(pai)

篮球弹跳

# 请使用 input() 输入弹跳的次数 num
num = int(input('请输入弹跳的次数: '))

# 请计算弹跳 num 次后的篮球高度,并将结果输出

height=10
# 请计算弹跳 num 次后的篮球高度,并将结果输出
for i in range(num):
    height=height/2
print(height)

猜数字

import random
 
num = random.randint(1,100)
guess_chances = 7
print('您只有7次猜数字的机会哦!')
 
for i in range(1,guess_chances + 1):
    print('这是第'+ str(i) + '次猜数字')
    guess = input('请输入数字:')
    if guess.isdigit():
        guess = int(guess)   
        if guess < num:
            print('您输入的数字太小了,您还有' + str(guess_chances - i)+'次机会,请重新输入:')   
        elif guess > num:
            print('您输入的数字太大了,您还有' + str(guess_chances - i)+'次机会,请重新输入:')
        elif guess == num:
            print('恭喜您猜对了')
            break
           
    elif guess == 'q':
        print('退出游戏!')
        break
    else:
        print('输入的内容必须为整数,请重新输入:')
while (guess_chances - i) == 0:
    print('您输入已经超过7次,游戏结束!')
    break

函数

打招呼函数

"""
练习:打招呼函数
要求:
1. 定义函数 say_hello
2. 有 1 个参数 name 表示要给谁打招呼
3. 实现函数功能,即在控制台打印:`你好,<name>,认识你很高兴!`(注:name 是函数的参数)
"""
def say_hello(name):
    n=name
    print("你好,{},认识你很高兴!".format(n))
name="张三"
say_hello(name)

能否组成三角形

"""
编写 is_triangle 函数,此函数有 3 个参数,分别为3个数字,
判断这3个数字所代表的边长能否组成一个三角形
"""

'''a=int(input())
b=int(input())
c=int(input())
'''
def is_triangle(a,b,c):

    if a<=0 or b<=0 or c<=0:
        return -1
    if a+b>c and a+c>b and b+c>a and a-b<c and a-c<b and b-c<a:
        return 1
    else:
        return 0
a=1
b=2
c=3
print(is_triangle(a,b,c))

转换秒为时间

# 定义一个 convert_from_seconds 函数, 参数 seconds, 返回表示时间的列表
def convert_from_seconds(seconds):
    a=seconds//86400
    b=seconds%86400//3600
    c=seconds%3600//60
    d=seconds%60
    list=[]
    list.append(a)
    list.append(b)
    list.append(c)
    list.append(d)
    return list

最大公约数

# 定义并实现函数 common_divisor

def common_divisor(num1,num2):
    if num1>num2:
        smaller=num2
    else:
        smaller=num1

    for i in  range(1,smaller+1):
        if((num1%i==0) and (num2%i)==0):
            res=i
    return res


# 调用函数
result = common_divisor(24, 16)
print(result)

简单计算器

# 加法函数
def addition(num1, num2):
    return num2+num1

# 减法函数
def subtraction(num1, num2):
    return num1-num2

# 乘法函数
def multiplication(num1, num2):
    return num1*num2

# 除法函数
def division(num1, num2):
    return num1/num2

杨辉三角

# 定义函数 pascal_triangle 接受参数 num,并返回杨辉三角第 num 行
def pascal_triangle(num):
    # j行的数据, 应该由j - 1行的数据计算出来.
    # 假设j - 1行为[1,3,3,1], 那么我们前面插入一个0(j行的数据会比j-1行多一个),
    # 然后执行相加[0+1,1+3,3+3,3+1,1] = [1,4,6,4,1], 最后一个1保留即可.
    r=[1]
    for i in range(1,num):
        r.insert(0,0)
        # 因为i行的数据长度为i+1, 所以j+1不会越界, 并且最后一个1不会被修改.
        for j in range(i):
            r[j]=r[j]+r[j+1]
    return r

print(pascal_triangle(3))

斐波那契数列计算

# 定义一个 fbi 函数,参数 num,返回斐波那契数列第 num 项的值。

def fbi(num):
    if num==1 or num==2:
        return 1
    else:
        return fbi(num-1)+fbi(num-2)

汉诺塔实践

# 请在...补充一行或多行代码
count = 0

def hanoi (n, src, dst, mid):
    global count
    if n == 1:
        print("{}: {}->{}".format(1, src, dst))
        count += 1
    else:
        ...

hanoi(3, "A", "C", "B")
print(count)

科赫雪花小包裹

# 请在...补充一行或多行代码

import turtle
def koch(size, n):
    ...

def main(level):
    turtle.setup(600,600)
    turtle.penup()
    turtle.goto(-200, 100)
    turtle.pendown()
    turtle.pensize(2)
    ...
    
try:
    level = eval(input("请输入科赫曲线的阶: "))
    main(level)
except:
    print("输入错误")

合法的用户名

"""
实现 check_username 函数,检查 username 是否有效
username 长度在 6-18 位之间,返回 True,否则返回 False
"""
def check_username(username):
    length=len(username)
    if 6<=length<=18:
        return True
    else:return False

user=input()
print(check_username(user))

密码的强度

"""
实现密码强度计算函数:
1. 实现函数 passworld_strength 返回 0-10 的数值,表示强度,数值越高,密码强度越强
2. 密码长度在 6 位及以上,强度 +1,
   在 8 位及以上,强度 +2,
   在 12 位及以上,强度 +4
3. 有大写字母,强度 +2
4. 除字母外,还包含数字,强度 +2
5. 有除字母、数字以外字符,强度 +2
"""
import string

#string.ascii_uppercase所有大写字母

#string.ascii_lowercase所有小写字母

#string.ascii_letters所有字母

#string.digits所有数字


def password_strength(pwd):
    strong=0
    length=len(pwd)
    if length>=12:
        strong+=4
    elif length>=8:
        strong+=2
    elif length>=6:
        strong+=1
    flag1=False
    for i in pwd:
        if i in string.ascii_uppercase:
            strong+=2
            break
    for i in pwd:
        if i in string.ascii_letters:
            flag1=True
            break
    flag2=False
    for i in pwd:
        if i in string.digits and flag1:
            strong+=2
            flag2=True
            break
    for i in pwd:
        if i not in string.digits and i not in string.ascii_letters and flag2:
            strong+=2
            break
    return strong
password=input()
print(password_strength(password))

藏头诗

poem1 = [
    "芦花丛中一扁舟",
    "俊杰俄从此地游",
    "义士若能知此理",
    "反躬难逃可无忧"
]

poem2 = [
    "我画蓝江水悠悠",
    "爱晚亭上枫叶愁",
    "秋月溶溶照佛寺",
    "香烟袅袅绕经楼"
]


def acrostic(poem):
    newstr=[]
    for i in range(len(poem)):
        str1=poem[i]
        rstr=list(str1)
        newstr.append(rstr[0])
        str1=""
    newstr1=''.join(newstr)
    return newstr1


print(acrostic(poem1))
print(acrostic(poem2))

统计字符出现的次数

"""
统计字符串 string 中出现字符 char 的次数,并返回;
char 是长度为 1 的字符串。
"""
def sum_char(string, char):
    str1=list(string)
    count=0
    for i in range(len(string)):
        if str1[i] == char:
            count+=1
    return count
str2=str(input())
char1=str(input())
print(sum_char(str2, char1))

文件拓展名

"""
获取文件扩展名
说明:实现 file_ext 函数,该函数接受一个表示文件名的字符串参数 filename,返回它的扩展名
"""
def file_ext(filename):
    str1=list(filename)
    for i in range(len(filename)):
        if str1[i]!=".":
            continue
        elif str1[i]==".":
            str2=str1[i+1:]
            str3=''.join(str2)
            return str3
            break
        else:
            return "error"
            
    
filename1=input()
print(file_ext(filename1))

组合数据类型

创建水果列表

fruits = ['苹果','草莓','香蕉','梨','百香果']

删除水果

fruits = ['苹果', '草莓', '香蕉', '梨','百香果']
'''
del fruits[1]
del fruits[3]
'''
fruits.remove('草莓')
fruits.remove('百香果')
#不带引号则无法识别为字符串去与列表中对应

添加水果

fruits = ['苹果', '香蕉', '梨']
fruits.append('西瓜')
fruits.append('葡萄')
#添加时需要带引号

计算总分和平均奶粉

# 小明的期末考试成绩分数如下:
scores = [95, 69, 98, 74, 64, 72, 53, 92, 83]
total_score=0
c=len(scores)
for i in range(c):
    total_score+=scores[i]
print(total_score)
avg_score=0
avg_score=total_score/c
print(avg_score)
# 请计算小明的总分、平均分,并保存至变量 total_score, avg_score 中

添加用户

users = {
    "alpha": "alpha123",
    "beta": "betaisverygood",
    "gamma": "1919191923",
    "zhangsan":"zs123456",
    "lisi":"si123456"
}
'''
dict["zhangsan"] = "zs123456"
dict["lisi"] = "si123456"
'''

模拟用户登录

users = {
    "alpha": "alpha123",
    "beta": "betaisverygood",
    "gamma": "1919191923",
    "zhangsan": "123456",
    "lisi": "123456",
    "admin": "ADMIN",
    "root": "Root123"
}

username = input()
password = input()

# 请在下面编写代码,判断输入的用户名或密码是否正确
if username not in users.keys():
    print("not found")
elif username in users.keys() and users.get(username)==password:
    print("success")
else:print("password error")
  • 12
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值