欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python基础数据类型-代码小练

程序员文章站 2022-05-28 22:32:48
一:判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, 例如: 153 = 1**3 + 5**3 + 3**3 二:给出一个纯数字列表. 请对列表进行排序(升级题). 思路: 三:完成彩票36选7的功能. 从36个数中随机的产生 ......

一:判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, 例如: 153 = 1**3 + 5**3 + 3**3  

 

 1 while 1:
 2     count= input("请您输入一个三位数,我们来判断是否是水仙花数,按q/Q退出程序:")
 3     if count != 'q' and str(count) != 'Q':#如果输入q/Q,则退出程序
 4         if 0 < (int(count)// 100) < 10 :#必须是三位数才能是水仙花数,通过整除100来判断是否是3位数
 5             ge=int(count) % 10#个位数
 6             si= int(count) //10 %10#十位数
 7             bai= int(count) // 100#百位数
 8             con = bai **3 + si**3+ge**3
 9             if int(count) == con: #判断是否是水仙花数
10                 print("%s是水仙花数" % count)
11             else :
12                 print("这个数%s不是水仙花数" % count)
13         else:
14             print("滚犊子,都说了3位数,重新输入")
15     else:
16         break

 

 

 

 二:给出一个纯数字列表. 请对列表进行排序(升级题).

思路:

  1. 完成ab的数据交换. 例如, a = 10, b = 24 交换之后, a = 24, b = 10
  2. 循环列表. 判断a[i]a[i+1]之间的大小关系, 如果a[i]a[i+1]. 则进行互换. 循环结束的时候. 当前列表中最大的数据就会被移动到最右端.
  3. 想一想, 如果再次执行一次上面的操作. 最终第二大的数据就移动到了右端. 以此类推. 如果反复的进行执行相应的操作. 那这个列表就变成了一个有序列表.

 

 1 a=[4,3,2,2,0,1]
 2 i=1#控制索引
 3 b=len(a)
 4 while b:
 5     i = 1#每次下面的一次循环结束,这个索引是再次循环的关键
 6     while i < b:#这个是一次循环,目的是把最大的数放入最右端,
 7         if a[i-1] > a[i] :#数的交换
 8             c= a[i-1]
 9             a[i-1]=a[i]
10             a[i]=c
11             print(a)
12         i += 1
13     b -=1
14 print(a)

 

 

 

 三:完成彩票367的功能. 36个数中随机的产生7个数. 最终获取到7个不重复的数据作为最终的开奖结果.

随机数:

from random import randint

randint(0, 20) # 0 - 20 的随机数

 1 import  random
 2 a=[]#放入随机数
 3 i=0 #这个是用作a的索引
 4 b=len(a)#计算总共放了多少随机数
 5 while b<7 :
 6     ran=random.randint(0, 36)
 7     while b > 0 and i <b:#当还没有随机数时不用判断,直接执行else把随机数放入a里
 8         if a[i] == ran:#这个循环的是判断a里的值有没有与现在产生的随机数相等的,若有重复的跳出
 9                         #循环,重新产生随机数
10             break
11         i += 1
12         # b -= 1
13     else:
14        a.append(ran)
15     b = len(a)
16 print(a)

 

四:税务部门征收所得税. 规定如下: 

        1). 收入在2000以下的. 免征.

        2). 收入在2000-4000的, 超过2000部分要征收3%的税. 

        3). 收入在4000-6000的, 超过4000部分要征收5%的税.

        4). 收入在6000-10000的, 超过6000部分要征收8%的税.  

        4). 收入在10000以上的, 超过部分征收20%的税. 

    注, 如果一个人的收入是8000, 那么他要交2000到4000的税加上4000到6000的税加上6000到8000的税. 

        收入 = 8000-(4000-2000)*3%-(6000-4000)*4%-(8000-6000)*8%

让用户输入它的工资, 计算最终用户拿到手是多少钱.

 

 1 content=int(input("请您输入您的收入是多少"))
 2 price=0
 3 if content < 2000:
 4     print("免征税")
 5 elif content <= 4000:
 6     price=2000+ (content-2000)*(1-0.03)
 7     print("您的实际收入%s"%price)
 8 elif content <=6000:
 9     price=2000+ (4000-2000)*(1-0.03)+(content-4000)*(1-0.05)
10     print("您的实际收入%s" % price)
11 elif content <= 10000:
12     price =2000+ (4000-2000)*(1-0.03)+(6000-4000)*(1-0.05) + (content-6000)*(1-0.08)
13     print("您的实际收入%s" % price)
14 else:
15     price = 2000 + (4000 - 2000) * (1-0.03) + (6000 - 4000) *(1-0.05) + (10000 - 6000) * (1-0.08)+(content-10000)*(1-0.2)
16     print("您的实际收入%s" % price)