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的整数:1123
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
汉诺塔(选做题):