python逝练(二)

目录

1、求一个十进制的数值的二进制的0、1的个数

2、实现一个用户管理系统(要求使用容器保存数据)[{name: xxx, pass: xxx, ……},{},{}]

3、求1~100之间不能被3整除的数之和

4、给定一个正整数N,找出1到N(含)之间所有质数的总和

5、计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)

6、给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

8、合并两个有序数组,合并后还是有序列表

9、给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之

10、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的

11、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

12、写一个方法,计算列表所有偶数下标元素的和(注意返回值)


 

1、求一个十进制的数值的二进制的0、1的个数

def int_count(n):
    bin_n = bin(n)
    num = str(bin_n).count('1')
    return num
def int_coun(a):
    bin_a = bin(a)
    num = str(bin_a).count('0')
    return num
print("1的个数为:",int_count(156),end='; ')
print("0的个数为:",int_coun(156))

python逝练(二)_第1张图片

2、实现一个用户管理系统(要求使用容器保存数据)
[{name: xxx, pass: xxx, ……},{},{}]

import sys

users = []

while True:
    print("====欢迎登录====")
    print("==1.用户注册==")
    print("==2.用户登录==")
    print("==3.退出系统==")
    choice = input("输入选择:")

    if choice == "1":
        while True:

            username = input("用户名")
            passworld = input("密码")

            if username == None or len(username) == 0:
                print("输入有误")
                continue

            flag = False
            for u in users:
                if u .get("username") == username:
                    print("已经注册")
                    flag = True
                    break
            if flag:
                continue

            users= {"username": username, "passworld":passworld}
            user.append(user)
            print("注册成功")
            print("\n")
            break
    elif choice == "2":
        print("\n")
        username = input("用户名:")
        passworld = input("密码:")

        for users in user:
            if users["username"] == username and users.get("password") == passworld:
                print(f"尊敬的{username},欢迎回来")
            else:
                print("登陆失败")

        else:
            sys.exit()

3、求1~100之间不能被3整除的数之和

sum = 0
for i in range(1, 101):
    if i % 3 ==0:
        sum+=i
        i+=1
print(sum)

 python逝练(二)_第2张图片

4、给定一个正整数N,找出1到N(含)之间所有质数的总和

def num(x):
    if x == 1:
        return False
    for i in range(2,x//2 + 1):
        if x % 1 == 0:
            return False
    return True

N = int(input("输入一个正整数:"))
sum = 0
for x in range(1,N+1):
    if num(x):
        sum += x
print(f"1到n之间所有的指质数总和:{sum}")


5、计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)

def hao():

    ans = 0;add = 1
    sign = 1
    while(1/add>10**(-6)) :
        ans = ans + sign/add
        add = add + 2
        sign = -sign
    else:
        ans += sign/add
    print("pi = {}".format(ans * 4))
hao()

python逝练(二)_第3张图片
 

6、给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

def bubble(arr):
   """冒泡排序"""
   for i in range(len(arr) - 1):
      for j in range(len(arr) - i - 1):
         if arr[j] > arr[j+1]:
            arr[j], arr[j+1] = arr[j+1], arr[j]
   return arr


ls = [19,23,4,9,1,80,19,20,15]
ls = bubble(ls)
print(ls)

 python逝练(二)_第4张图片
 

8、合并两个有序数组,合并后还是有序列表

def selection_sort(ls=[]):
   for i in range(len(ls)):
      index_min = i
      for j in range(i + 1, len(ls)):
         if ls[index_min] > ls[j]:
            index_min = j
      ls[index_min], ls[i] = ls[i], ls[index_min]
   return ls


ls_1 = [2, 3, 45, 9, 12]
ls_2 = [22, 12, 34, 38, 11]
print(f'原有序列表1为:{ls_1}')
print(f'原有序列表2为:{ls_2}')
ls_1.extend(ls_2)
print(f'合并后的有序列表为:{selection_sort(ls_1)}')

python逝练(二)_第5张图片

9、给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前

import random
ls =[random.randint(0,100) for i in range(10)]
print("排序前",ls)

od = []
even = []
for i in ls:
   if i % 2 == 0:
      even.append(i)
   else:
      od.append(i)

even.extend(od)
print("排序后",even)

10、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数

 

11、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def func():
    for i in range(1,50):
        if (i % 5 == 0 or i % 6 ==0 ):
            if i % 5 == 0 and i % 6 ==0:
                continue  #利用continue跳过能被5和6整除的数
        print(i)
func()

12、写一个方法,计算列表所有偶数下标元素的和(注意返回值)

def sum_even(ls):
   '''
    计算列表所有偶数下标元素的和
    '''
   sum_even = 0
   for i in range(0, len(ls), 2):
      sum_even += ls[i]
   return sum_even


if __name__ == '__main__':
   ls = [1, 2, 3, 4, 5, 6, 7, 8]
   print(f'{ls}中所有偶数下标元素的和为:{sum_even(ls)}')

 python逝练(二)_第6张图片

 以上即是本次所有内容了,希望对您有所帮助!

你可能感兴趣的:(python,numpy,开发语言)