python

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

num = int(input("请输入一个十进制数值:"))
start_num = num
count_1 = 0
count_0 = 0
while num != 0 :
    count = num % 2
    num //= 2
    if count == 0 :
        count_0 += 1
    elif count == 1:
        count_1 += 1
print(f"0的个数有{count_0}")       
print(f"1的个数有{count_1}")
        
请输入一个十进制数值:78
0的个数有3
1的个数有4

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

def choose0():
    print('\t\t\t\t\t\t用户管理系统\t\t\t\t\t\t')
    print('\t\t\t\t\t\t1.用户登录/注册\t\t\t\t\t\t')
    print('\t\t\t\t\t\t2.管理员界面\t\t\t\t\t\t')
    choose2 = int(input('请选择用户登录注册或是管理员登录:'))
    if choose2 == 1:
        useroption()
    elif choose2 == 2:
        adminiter()
    else:
        print('您选择的信息有误')
						用户管理系统						
						1.用户登录/注册						
						2.管理员界面						
请选择用户登录注册或是管理员登录:

 

user =[{'username':'zs','number':'1','name':'zhangsan','passwd':'1234','age':'18','gender':'男'},
       {'username':'ls','number':'2','name':'lisi','passwd':'1256','age':'16','gender':'男'},
       {'username':'zz','number':'3','name':'zhouzhou','passwd':'0987','age':'15','gender':'女'} ]

def useroption():
    print('\t\t\t\t\t用户登录注册\t\t\t\t\t')
    print('\t\t\t\t\t1.用户登录\t\t\t\t\t')
    print('\t\t\t\t\t2.用户注册\t\t\t\t\t')
    choose1 = int(input('请输入你要选择的操作:'))
    ls_username = []
    ls_passwd = []
    for i in range(len(user)):
            a = user[i]
            b = a.get('username')
            c = a.get('passwd')
            ls_username.append(b)
            ls_passwd.append(c)
    hecheng = dict(zip(ls_username,ls_passwd))
    if choose1 == 1:
        while True :
            username = input('请输入你的用户名:')
            if username not in ls_username:
                print(f'该用户名不存在,请重新输入:')
                continue
            else:
                break
               
        while True:
            passwd = input('请输入密码:')
            if passwd != hecheng[username]:
                print('密码输入错误,请重新输入:')
                continue
            else:
                print('登录成功')
                print('----------------------------------')
                print()
                break
                choose0()            
    elif choose1 == 2:
        while True:
            username = input('请输入你的用户名:')
            if username  in ls_username:
                print('该用户名已存在,请重新输入:')
                continue
            else:
                break
                
        while True:
            passwd = input('请输入该用户的密码:')
            if len(passwd) < 4:
                print('您的密码长度过低,最低为4位')
                continue
            else:
                hecheng[username] = passwd
                print(f'您注册的用户名是:{username}')
                print(f'您的密码是:{passwd}')
                print('注册成功,可以登录了')
                print()
                break
                choose0()
       
					用户登录注册					
					1.用户登录					
					2.用户注册					
请输入你要选择的操作:
def adminiter():
    print('\t\t\t\t\t\t用户信息管理页面\t\t\t\t\t\t')
    print('\t\t\t\t\t\t1.用户信息查询\t\t\t\t\t\t')
    print('\t\t\t\t\t\t2.用户信息添加\t\t\t\t\t\t')
    print('\t\t\t\t\t\t3.用户信息删除\t\t\t\t\t\t')
    print('\t\t\t\t\t\t4.用户信息修改\t\t\t\t\t\t')
    choose = int(input('请输入你的选择:'))
    if choose == 1:
        showuser()
    if choose == 2:
        adduser()
    if choose == 3:
        deluser()
    if choose == 4:
        changeuser()
						用户信息管理页面						
						1.用户信息查询						
						2.用户信息添加						
						3.用户信息删除						
						4.用户信息修改						
请输入你的选择:
def showuser():
    x = int(input('请输入你要查询用户序号:'))
    for i in range(len(user)):
        if i == x:
            print(user[i-1])
            choose0()
						用户信息管理页面						
						1.用户信息查询						
						2.用户信息添加						
						3.用户信息删除						
						4.用户信息修改						
请输入你的选择:1
请输入你要查询用户序号:1
{'username': 'zs', 'number': '1', 'name': 'zhangsan', 'passwd': '1234', 'age': '18', 'gender': '男'}
def adduser():
    username = input('请输入用户名:')
    name = input('请输入姓名:')
    number = input('请输入序号:')
    passwd = input('请输入密码:')
    age = int(input('请输入年龄:'))
    gender = input('请输入性别:')
    print('您已经成功添加用户')
    print('-----------------------------')
    newuser = {}
    newuser['username']= username
    newuser['name']= name
    newuser['number']= number
    newuser['passwd']= passwd
    newuser['age']= age
    newuser['gender']= gender
    user.append(newuser)
    print(user)
    choose0()
						用户信息管理页面						
						1.用户信息查询						
						2.用户信息添加						
						3.用户信息删除						
						4.用户信息修改						
请输入你的选择:2
请输入用户名:li
请输入姓名:liyan
请输入序号:4
请输入密码:fgjk
请输入年龄:13
请输入性别:女
您已经成功添加用户
-----------------------------
[{'username': 'zs', 'number': '1', 'name': 'zhangsan', 'passwd': '1234', 'age': '18', 'gender': '男'}, {'username': 'ls', 'number': '2', 'name': 'lisi', 'passwd': '1256', 'age': '16', 'gender': '男'}, {'username': 'zz', 'number': '3', 'name': 'zhouzhou', 'passwd': '0987', 'age': '15', 'gender': '女'}, {'username': 'li', 'name': 'liyan', 'number': '4', 'passwd': 'fgjk', 'age': 13, 'gender': '女'}]
def deluser():
    ls_username = []
    ls_passwd = []
    for i in range(len(user)):
            a = user[i]
            b = a.get('username')
            c = a.get('passwd')
            ls_username.append(b)
            ls_passwd.append(c)
    hecheng = dict(zip(ls_username,ls_passwd))
    delname = input('请输入要删除用户的账号:')
    print(f'您确定删除账号{delname}用户的信息吗?')
    choose = input('Y/N:')
    if choose == 'Y':
        if delname in ls_username:
            n = int(input('请输入要删除用户序号:'))
            for i in range(len(user)):
                if i == n:
                    user.remove(user[i-1])
            print('您已删除该用户')
        else:
            print('您输入的账号不存在')
    elif choose == 'N':
        print('没有删除任何用户')
    print(user)
    choose0()   

 

						用户信息管理页面						
						1.用户信息查询						
						2.用户信息添加						
						3.用户信息删除						
						4.用户信息修改						
请输入你的选择:3
请输入要删除用户的账号:zs
您确定删除账号zs用户的信息吗?
Y/N:Y
请输入要删除用户序号:1
您已删除该用户
[{'username': 'ls', 'number': '2', 'name': 'lisi', 'passwd': '1256', 'age': '16', 'gender': '男'}, {'username': 'zz', 'number': '3', 'name': 'zhouzhou', 'passwd': '0987', 'age': '15', 'gender': '女'}, {'username': 'li', 'name': 'liyan', 'number': '4', 'passwd': 'fgjk', 'age': 13, 'gender': '女'}]
def changeuser():
    ls_username = []
    ls_passwd = []
    for i in range(len(user)):
            a = user[i]
            b = a.get('username')
            c = a.get('passwd')
            ls_username.append(b)
            ls_passwd.append(c)
    hecheng = dict(zip(ls_username,ls_passwd))
    changename=input('请输入要修改的学生的账号:')
    if changename in ls_username:
        print(f'您当前修改的用户账号为: {changename}' )
        new_changepwd = input('请输入要修改的用户的密码:')
        hecheng[changename]=new_changepwd
        print('您已成功修改用户',changename,'的个人信息')
        print('------------------------')
        print(end='\n')
        print(hecheng)
    else:
        print('您输入的用户不存在')
        print('------------------------')
        print(end='\n')
        print(user)
        choose0()
						用户信息管理页面						
						1.用户信息查询						
						2.用户信息添加						
						3.用户信息删除						
						4.用户信息修改						
请输入你的选择:4
请输入要修改的学生的账号:zs
您当前修改的用户账号为: zs
请输入要修改的用户的密码:0987
您已成功修改用户 zs 的个人信息
------------------------

{'zs': '0987', 'ls': '1256', 'zz': '0987'}


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

def num_sum():
    count = 0
    for i in range(1,101):
        if i % 3 != 0:
            count += i
    print(count)
    
    
num_sum()
3367

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

 

def prime_num(N):
    ls = []
    count = 0
    if N == 1 or N == 2 or N == 3:
        print("不是质数")
    for i in range(4,N+1):
        flag = True
        for j in range(2,i):
            if i % j == 0:
                flag = False
                break
        if flag:
            ls.append(i)
    print(ls)
    for i in ls:
        count += i
    print(f"1到N之间所有质数的总和{count}")
        
        
prime_num(150)
[5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149]
1到N之间所有质数的总和2271


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

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

def sort(a=[]):
    for i in range(len(a)):
        b = i
        for j in range(i+1,len(a)):
            if a[b] > a[j]:
                b = j
        a[b] ,a[i] = a[i], a[b]
    return a


a = [8,6,2,5,7,3,1,5,9,4,10]
print(a)
print(f'排序后为:{sort(a)}')

 

[8, 6, 2, 5, 7, 3, 1, 5, 9, 4, 10]
排序后为:[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10]

7、求  a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。

def num_sum(n,a):
    if n == 1:
        return a
    return num_sum(n-1,a*10)+num_sum(1,a*n)
    
    
n = int(input("请输入项数:"))
a = int(input("请输入一个1~9的整数:"))
num_sum(n,a)

 

请输入项数:3
请输入一个1~9的整数:1
123

 

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

 

def num():
    num1 = [1,3,5]
    num2 = [2,4]
    num1.extend(num2)
    num1.sort()
    print(num1)
num()
[1, 2, 3, 4, 5]

 

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

 

def nun_sort(a=[]):
    for i in range(len(a)):
        if a[i] % 2 != 0:
            for j in range(i + 1,len(a)):
                if a[j] % 2 == 0:
                    a[i],a[j] = a[j],a[i]
                    break
    return a

a = [1,2,3,4,5,6,7,8,9]
print(a)
print(nun_sort(a))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8, 5, 3, 7, 1, 9]

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


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

def num():
    ls1 = []
    ls2 = []
    for i in range(10000):
        if i % 5 == 0 and i % 6 != 0:
            ls1.append(i)
            
        elif i % 6 == 0 and  i % 5 != 0:
            ls2.append(i)
    print(f"10000以内能被5整除的数:{ls1}")       
    print(f"10000以内能被6整除的数:{ls2}")        
            
num()


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

 

def sum_even(ls):
    count = 0
    for i in range(0,len(ls),2):
        count += ls[i]
    return count
ls = [1,2,3,4,5,6,7,8,9]
print(f"列表所有偶数下标元素的和{sum_even(ls)}")

 

列表所有偶数下标元素的和25

作业(选做题):
    某个人进入如下一个棋盘中,要求从左上角开始走,
    最后从右下角出来(要求只能前进,不能后退),
    问题:共有多少种走法?
    
    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

汉诺塔(选做题):
    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值