python入门【基础】学习练习题【小练习】

1,列表元素去重

#方法1,通过遍历去重。

lst=[10,20,30,10,20] #创建一个列表

lst2=[] #创建一个空列表

for i in lst: #赋值i,将列表lst放到for循环中

#    print(i) #输出打印i,i依次打印10,20,30,10,20

    if i not in lst2: #判断输出的i值是否不在lst2列表中

        lst2.append(i)

#如果i值不在lst2列表中,就将i值加入到lst2列表。

print(lst2) #打印输出lst2列表

#方法2,采用set()集合去重

new_list = list(set(lst))

print(new_list)

2,计算前n个数字的平方和,输入数字N,计算1^2+2^2+3^2+...+N^2

n=int(input('请输入一个整数数字:')) #声明输入变量n

lst1=[] #声明空列表lst1

a=0 #声明变量a用于存储数据。

while n > 0: #while循环判断n如果大于0,进入循环

    s = n - 1 #声明变量s的值是n-1

    n-=1 #然后执行n-1赋值给n

    if s > 0: #判断如果s>0

        lst1.append(s) #就将s输出的值存放到列表lst1当中。

for item in lst1: #声明变量item,循环输出lst1列表中的值

    a+=item**2 #声明变量a,a的值为item的平方加item的平方

print(a) #最后输出a的值,即为整数N的平方和。

3,计算列表内元素的和

lst3=[1,2,3,4,5]

d=0

for j in lst3:

    d+=j

print(d)

4,计算数字范围中所有的偶数,即输入起始值和结束值,输出这个范围内所有的偶数到列表当中

lst4=[]

begin=int(input('请输入起始数值:'))

end=int(input('请输入结束数值:'))

for i in range(begin,end):

    if i%2 == 0:

        lst4.append(i)

print(lst4)

5,输入起始值和结束值生成列表,清除列表中所有的偶数,输出元素都为奇数的列表

begin=int(input('请输入起始数值:'))

end=int(input('请输入结束数值:'))

lst5=[]

for i in range(begin,end):

    if i%2 != 0:

        lst5.append(i)

print(lst5)

6,给列表内的元素[数字,字母]做排序

lst5=[10,98.7,87.7,78.5,37.6,53.2,29,109.79,58] #对数字做排序

lst5.sort()

print(lst5)

lst6=['a','b','s','d','e','f','g','h'] #对字母做排序

lst6.sort()

print(lst6)

7,根据学生的考试成绩做降序排序

scores={'张三':98,'李四':100,'王五':76,'陈六':82,'Jack':89,'姚爽':78}

r = sorted(scores.items(),key=lambda x:x[1],reverse=True)

print(r)

8,给出一个列表,求列表中的最大值和最小值

data = [10,23,35,47,53,62,37,17,37,29,43,8,23,32]

max_data = data[0]

min_data = data[0]

for i in data:

    if i > max_data:

        max_data = i

    elif i < min_data:

        min_data = i

print(f'数组中的最大值为{max_data}')

print(f'数组中的最小值为{min_data}')

9,求1到100相加的和

count = 0

for i in range(1,101):

    count+=i

print(f'1至100之间的和为{count}')

10,输入两个数字,求数字相加之和。

number1=float(input('请输入数字:'))

number2=float(input('请输入数字:'))

sum = number1 + number2

#赋值变量sum为变量number1+number2的和。

print(f"{number1} + {number2} = {sum}")

11,分萝卜游戏,输入萝卜的个数(N>3),给小黑兔、小白兔、小灰兔 三只兔子分萝卜,要求小黑兔分到的萝卜数要大于等于小白兔的萝卜数量,小白兔分到的萝卜数要大于等于小灰兔的萝卜数量。根据输入的萝卜数输出不同的分法。

题目解析:

假设小黑兔分到x,小白兔分到y,小灰兔分到z。

则 x+y+z = 萝卜总数

且 x>=y>=z

萝卜总数需要手动输入,用到input函数。

count = 0

total = int(input('请输入萝卜的个数:'))

if total > 3:

    for x in range(total):

        for y in range(total):

            z = total - x - y

            if z > 0 and x >= y and y >= z and x + y + z <= total:

                count+=1

                print('='*60)

                print(f'第{count}种分法,小黑兔分了{x}根萝卜,小白兔分了{y}根萝卜,小灰兔分了{z}根萝卜')

else:

print('您输入的数据不符合要求,请重新输入')

12,根据两张列表提供的数据,如果两张列表中的元素相加等于10,则输出这两个数字到新列表当中。

data1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,15,17]

data2 = [-1,2,1,3,4,5,6,7,8,9,10,11,-2]

for i in data1:

    for item in data2:

        if i + item == 10:

            print([i,item])

13,根据给到的列表计算列表当中有多少个元素。

d = [1, 2, 3, 4, 5, 7, 8, 9, 10]

count = 0

for i in d:

   count+=1

print(count)

14,输入数字(整数),求这个数字的阶乘

s = 1

n = int(input('请输入1个数字:'))

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

    s=s * i

print(s)

15,存款多少年才能翻倍。1万本金,利息0.0325每年,问连本带息多少年能翻倍

a = 10000

count = 0

while a < 20000:

    a = a + a * 0.0325

    count+=1

print(f'第{count}年时,存款可以翻倍。且此时存款金额为{a}')

16,输入一个包含字符'a'的字符串(字符串长度小于1000),输出字符串中字符'a'的个数

word = input('输入一个包含字符\'a\'的字符串:')

sub ='a'

s = word.count(sub)

print('输出一个整数,表示字符串中字符\'a\'的个数是',s)

17,输入用户名(admin),密码(8888),判断用户名密码输入是否正确,3次机会,如果输入3次后依然判断用户名或密码错误,则退出程序。

for item in range(3):

    name = input('请输入用户名: ')

    password = input('请输入密码: ')

    if password == '8888' and name == 'admin':

        print('密码输入正确!')

        break

    else:

        print('用户名或密码错误!')

18,折纸上月球,地球到月球的最小距离是363300公里,一张A4纸的厚度为0.088毫米,请问需要折几次可以登上月球

gap = 363300000000

paper = 0.088

i = 0

while paper < gap:

    paper = paper * 2

    i+=1

print(i)

print(paper)

19,打印输出九九乘法口诀

print('=====打印9*9乘法口诀表=====')

for i in range(1,10):

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

        print(i,'*',j,'=',i*j,end='\t')

    print()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值