python之基础练习30题

学而时习之,不亦说乎!

python是一门语言,要经常练习,希望我整理出来的这些题目对初学者或者经常不用python的你有所帮助。

题目:

1,九九乘法表

2,手动输入一个字符串,打散放进一个列表,小写字母从大到小排列序,大写字母保持不变

3,li=[1,2,3,4,5,6,7,8,8]组成多少个互不相同且不重复的两位数

4,计算1+2+3...+98+99+100,并打印出计算公式 

5.列表['alex','egon','yuan','wusir','666']
1.把666替换成999
# 2.获取"yuan"索引
# 3.假设不知道前面有几个元素,分片得到最后的三个元素

6.切割字符串"luffycity"为"luffy","city"

7.求1~100间所有偶数的和(亦可奇数和,分别使用for,while循环写)

8.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。
# 其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。

9.输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)
# 注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

10.将列表['alex', 'steven', 'egon'] 中的每一个元素使用 ‘\_’ 连接为一个字符串

11.求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数。

12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?

13.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;
小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!

14、实现一个整数加法计算器

15.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,
失败时允许重复输入三次 ###


16.使用while循环输出2-3+4-5+6...+100的和:

17.使用 for 循环和 range 实现输出1-2+3-4+5..+99的和

18.使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12

19.使用 while 循环实现输出 1-100 内的所有奇数

20.摆放家具

需求:
1).房子有户型,总面积和家具名称列表
新房子没有任何的家具
2).家具有名字和占地面积,其中
床:占4平米
衣柜:占2平面
餐桌:占1.5平米
3).将以上三件家具添加到房子中
4).打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

21、M与N的数学运算:用户输入两个数 M 和 N,其中 N 是整数,计算M 和 N 的5种数学运算结果,
并依次输出,结果间用空格分隔。5种数学运算分别是:M 与 N 的和、M 与 N 的乘积、
M 的 N 次幂、M除 N 的余数、M 和 N 中较大的值。

22、将输入的字符串垂直输出

23、计算2的n次方,n由用户输入

24、成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于
60的输出“pass”,否则输出“fail”,成绩不四舍五入。

25、完美立方:找到大于1的4个整数满足完美立方等式:a3=b3+c3+d3(例如123=63+83+103)。
编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),
满足a3=b3+c3+d3,其中1<a,b,c,d≤N。

26、货币转换:写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,
符号和数值之间没有空格。

27、月份缩写:如果有 months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec.",编写一个程序,
用户输入一个月份的数字,输出月份的缩写。

28、恺撒密码:凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中
的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,假设用户可能使用的输入仅包含
小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。

29、3位水仙花数计算:“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,并输出结果。

30、购物车 功能要求:

  要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

  goods = [
        {"name": "电脑", "price": 1999},

        {"name": "鼠标", "price": 10},

        {"name": "游艇", "price": 20},

        {"name": "美女", "price": 998},

 代码:

1,九九乘法表:

for循环:

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={j*i}\t",end="")
    print()

while循环:

i =1
while i < 10:
    j=1
    while j < i+1:
        print(f"{j}*{i}={j * i}\t", end="")
        j+=1
    print()
    i+=1

2,手动输入一个字符串,打散放进一个列表,小写字母从大到小排列序,大写字母保持不变

复制代码
str = input("请输入一个字符串:")
str_list = list(str)
list =[]
dict={}
for i in range(len(str_list)):
    if "a"<=str_list[i]<="z":
        list.append(str_list[i])
    else:
        dict[i]=str_list[i]
list.sort()
list.reverse()
for i in dict:
    list.insert(i,dict[i])
new_str = "".join(list)
print(new_str)
复制代码

3,li=[1,2,3,4,5,6,7,8,8]组成多少个互不相同且不重复的两位数

复制代码
li=[1,2,3,4,5,6,7,8,8]
li2=[]
for i in range(len(li)):
    for j in range(len(li)):
        if i != j :
            str = 10*li[i]+li[j]
            li2.append(str)
li2_set = set(li2)
li3=list(li2_set)
print(li3)
复制代码

4,计算1+2+3...+98+99+100,并打印出计算公式 

复制代码
sum = 0
list=[]
for i in range(1,101):
    list.append(i)
    sum+=i

list1 =[str(i) for i in list]
# 把列表中的数字以字符串的方式存放在新列表中
str_list = "+".join(list1)
print(f"{str_list}={sum}")
复制代码

5.列表['alex','egon','yuan','wusir','666'](编程)
   1.把666替换成999
   2.获取"yuan"索引
   3.假设不知道前面有几个元素,分片得到最后的三个元素

复制代码
list = ['alex','egon','yuan','wusir','666']
# 1,
list[-1]="999"
# 2,
print(list.index("yuan"))
# 3,
list1=[]
for i in range(-3,0):
    list1.append(list[i])
print(list1)
复制代码

6.切割字符串"luffycity"为"luffy","city"

str ="luffycity"
str1=str[:5]
str2=str[5:]
print(f"{str1},{str2}")

7.求1~100间所有偶数的和(亦可奇数和,分别使用for,while循环写)

复制代码
# 偶数 和
sum = 0
for i in range(1,101):
    if i%2 == 0:
        sum +=i
print(sum)
# 打印出偶数公式及和
list =[]
sum =0
for i in range(1,101):
    if i%2 ==0:
        list.append(i)
        sum +=i
list1 = [str(i) for i in list]
str_list = "+".join(list1)
print(f"{str_list}={sum}")

i= 1
list=[]
sum =0
while i <101:
    if i%2 ==0:
        list.append(i)
        sum +=i
    i +=1
list1 = [str(i) for i in list]
str_list = "+".join(list1)
print(f"{str_list}={sum}")
复制代码

8.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。
  其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。

复制代码
while True:
    str = input("请输入分数:")
    if str.isdigit():
        int_str = int(str)
        if 100>=int_str >=90:
            print("A")
            # break
        elif 80<=int_str<=89:
            print("B")
            # break
        elif 70<=int_str<=79:
            print("c")
            # break
        elif int_str<60:
            print("E")
            # break
        else:
            print("输入分数数值不对,请检查")
    else:
        print("输入非数值类型,请输入数字类型:")
复制代码

9.输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)
 注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

复制代码
while True:
    str=input("请输入年份:")
    if str.isdigit():
        int_str = int(str)
        if int_str%400 ==0:
            print("闰年")
        elif int_str%4 ==0:
            if int_str%100 ==0:
                print("不是闰年")
            else:
                print("闰年")
    else:
        print("请输入正确的年份")
复制代码

10.将列表['alex', 'steven', 'egon'] 中的每一个元素使用 ‘\_’ 连接为一个字符串

list = ['alex', 'steven', 'egon']
str = "\_".join(list)
print(str)

11.求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数

复制代码
sum3 =[]
sum1=0
for i in range(1,101):
    if i%3 ==0:
        sum3.append(i)
        sum1 +=i
sum2 = sum1/len(sum3)
print(sum3)
print(sum1)
print(sum2)
复制代码

12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?

复制代码
money = 10000
tr =True
i=0
while tr:
    money = money*1.0325
    i+=1
    if money//10000 >=2:
        tr = False
print(money)
print(i)
复制代码

13.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;
小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!

复制代码
#随机设置一个数,比如7
number = 7
i=True
while i:
    num = input("请输入你要猜的数字:")
    if num.isdigit():
        num = int(num)
        if num < number:
            print("太小了")
        elif num > number:
            print("太大了")
        elif num == number:
            print("恭喜!你猜中了!")
            i = False
    else:
        print("输入错误,请重新输入")
复制代码

14、实现一个整数加法计算器

复制代码
while True:
    num = input("请输入要计算的整数算式:")
    sum1 = 0
    sum2 =0
    num_list = num.split("+")
    len_nlist = len(num_list)
    for i in num_list:
        if i.isdigit():
            i = int(i)
            sum1 += i
            sum2 += 1

        else:
            print("请输入正确的整数加法运算算式")
            break
    if sum2 == len_nlist:
        print(sum1)
复制代码

15.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,
失败时允许重复输入三次 ###

复制代码
tr = True
i = 0
while tr:
    user = input("请输入用户名:")
    passwed = input("请输入密码:")
    if user == "seven":
        if passwed.isdigit():
            passwed = int(passwed)
            if passwed == "123":
                print("登录成功")
            else:
                print("请重新登录,密码错误")
        else:
            print("请重新登录,密码非数字类型")
    elif user == "alex":
        if passwed.isdigit():
            passwed = int(passwed)
            if passwed == "123":
                print("登录成功")
            else:
                print("请重新登录,密码错误")
        else:
            print("请重新登录,密码密码非数字类型")
    else:
        print("用户名错误,请重新输入")
    i +=1
    if i == 3:
        print("失败已达三次,请明天重试")
        tr = False
复制代码

16.使用while循环输出2-3+4-5+6...+100的和:

复制代码
sum= 2
i=2

tr =True
while tr:
    if i ==101:
        tr = False
    if i%2==0:
        sum = sum -(i+1)
        i+=1

    elif i%2==1:
        sum += (i+1)
        i+=1
print(sum)
复制代码

17.使用 for 循环和 range 实现输出1-2+3-4+5..+99的和

复制代码
sum=1
for i in range(1,99):
    if i%2==1:
       sum = sum -(i+1)
       print(sum)

    elif i % 2 ==0:
        sum = sum +(i+1)
        print(sum)

print(sum)
复制代码

18.使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12

复制代码
tr = True
i = 1
while tr:
    if i <6:
        print(i)

    elif 6<i<10:
        print(i)
    elif 10<i<13:
        print(i)
        if i ==12:
            tr =False

    i+=1

复制代码

 

19.使用 while 循环实现输出 1-100 内的所有奇数

复制代码
i = 1
tr=True
i_list =[]
while tr:
if i%2 ==1:
i_list.append(i)
elif i ==100:
tr =False
i+=1

print(i_list)
复制代码

20.摆放家具

需求:
1).房子有户型,总面积和家具名称列表
新房子没有任何的家具
2).家具有名字和占地面积,其中
床:占4平米
衣柜:占2平面
餐桌:占1.5平米
3).将以上三件家具添加到房子中
4).打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

复制代码
host_dict ={"1室户":"50","2室户":"85","3室户":"110"}
host_jiajv = {"床":"4","衣柜":"2","餐桌":"1"}
i = input("请输入房型:")
j = input("请输入家具:")
j_list = j.split(",")
m_sum =0
for l in j_list:
    m = int(host_jiajv[l])
    m_sum +=m

n = int(host_dict[i])


k = n-m_sum


print(f"户型:{i},总面积:{host_dict[i]}平米,剩余面积{k}平米,家具列表:{j}")
复制代码

21、M与N的数学运算:用户输入两个数 M 和 N,其中 N 是整数,计算M 和 N 的5种数学运算结果,
并依次输出,结果间用空格分隔。5种数学运算分别是:M 与 N 的和、M 与 N 的乘积、
M 的 N 次幂、M除 N 的余数、M 和 N 中较大的值

复制代码
tr = True
while tr:
    m = input("请输入M的数值:")
    if m.isdigit():
        m = int(m)
    else:
        print("输入的数值不对!")
        break
    n = input("请输入N的数值:")
    if n.isdigit():
        n=int(n)
        tr =False5

    else:
        print("输入的数值不对!")
        break
    if m > n:
        j = m
    else:
        j = n
    print(f"{m+n} {m*n} {m**n} {m%n} {j}")
复制代码

22、将输入的字符串垂直输出

str1 = input("请输入你要输入的内容:")
str_list = list(str1)
for i in str_list:
    print(i)

23、计算2的n次方,n由用户输入

复制代码
tr = True
while tr:
    n = input("请输入2的几次方:")
    if n.isdigit():
        n=int(n)
        tr =False
    else:
        print("输入的数值有误,请检查!")
print(f"2的{n}次方的值是{2**n}")
复制代码

24、成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于
60的输出“pass”,否则输出“fail”,成绩不四舍五入。

tr = True
while tr:
    num = input("请输入学生的成绩:")
    num = float(num)
    if num >= 60:
        print("pass")
    else:
        print("fail")

25、完美立方:找到大于1的4个整数满足完美立方等式:a3=b3+c3+d3(例如123=63+83+103)。
编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),
满足a3=b3+c3+d3,其中1<a,b,c,d≤N。

复制代码
list1 =[]
list2 = []
for a in range(2,101):
    for b in range(2,101):
        for c  in range(2,101):
            for d in  range(2,101):
                if a**3 == b**3 + c**3 + d**3:
                    list1.append(a)
                    list1.append(b)
                    list1.append(c)
                    list1.append(d)
                    tuple1 =tuple(list1)
                    list2.append(tuple1)
                    list1 = []
print(list2)
复制代码

26、货币转换:写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,
符号和数值之间没有空格。

复制代码
tr = True
while tr:
    bizhong = input("请输入币种:")
    num = input("请输入金额:")
    if bizhong == "RMB":
        num = float(num)
        jiner = num / 6.78
        print(f"兑换后的金额为{jiner}")
    elif bizhong =="USD":
        num = float(num)
        jiner = num *6.78
        print(f"兑换后的金额为{jiner}")
    else:
        print("输入币种有误,请检查")
复制代码

27、月份缩写:如果有 months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec.",编写一个程序,
用户输入一个月份的数字,输出月份的缩写。

复制代码
months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec."
months_list = months.split(".")
num = input("请输入月份:")
if num.isdigit():
    num = int(num)
    if 0<num <13:
        print(months_list[num-1])
    else:
        print("输入有误")
else:
    print("输入有误哦")
复制代码

28、恺撒密码:凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中
的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,假设用户可能使用的输入仅包含
小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。

复制代码
list1 =["d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","w","v","u","x","y","z","a","b","c"]
str1 = input("请输入信息:")
list2 = list(str1)
len_list2 = len(list2)
list3=[]
for i in range(len_list2):
    if "a"<= list2[i] <="z":
        list3.append(list1[i])
    elif list2[i] ==" ":
        list3.append(" ")
str2 = "".join(list3)
# print(str2)
复制代码

29、3位水仙花数计算:“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,并输出结果。

list1=[]
for a in range(1,10):
    for b in range(1,10):
        for c in range(1,10):
            if 100*a + 10 * b +c == a**3 + b**3 + c**3 :
                m = 100* a + 10*b + c
                list1.append(m)
# print(list1)

30、购物车 功能要求:

  要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

  goods = [
        {"name": "电脑", "price": 1999},

        {"name": "鼠标", "price": 10},

        {"name": "游艇", "price": 20},

        {"name": "美女", "price": 998}】

复制代码
goods = [{"name": "电脑", "price": 1999},{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},{"name": "美女", "price": 998}]
while True:
    price1 =input("请输入总资产:")

    if price1.isdigit():
        price1 = int(price1)
        break
    else:
        print("总资产请输入整数")
num = input("请输入商品序号,多个商品用“,”隔开:")
list1 = num.split(",")
sum = 0
for i in list1:
    i = int(i)
    a = goods[i-1]["price"]

    sum += a
if sum <= price1:
    print("购买成功")
else:
    print("账户余额不足")
for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={j*i}\t",end="")
    print()
i =1
while i < 10:
    j=1
    while j < i+1:
        print(f"{j}*{i}={j * i}\t", end="")
        j+=1
    print()
    i+=1
复制代码

 

希望这些对您有帮助,有问题可留言

 

posted @   帅袁  阅读(5399)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示