1.如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
ls = []
#外层循环用于迭代0-100的数字,1不做判断
for num in range(2,101):
#定义一个布尔值,flag为真代表是素数
flag = True
for i in range(2,num):
if num%i == 0:
flag = False
break
if flag:
#将所有的素数存储在容器中,这里的容器选择列表,因为可以通过下标来进行访问
ls.append(num)
else:
#由于题目是只打印素数,所以else语句不做任何输出内容
pass
print(“1~100以内的素数有:”)
print(ls)
index = 1
while index < len(ls):
#为防止下标越界,采用如下方式
if ls[index] - ls[index - 1] == 2:
print("{}和{}是孪生数".format(ls[index], ls[index - 1]))
index += 1
2.给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
lt=list(input(“请输入二个以上的数字:”))
for i in range(len(lt) - 1):
for j in range(len(lt) - 1 - i):
if lt[j] > lt[j + 1]:
lt[j], lt[j + 1] = lt[j + 1], lt[j]
print(lt)
3.两个列表进行合并操
list_a = [‘a’,‘b’,‘c’]
list_b = [‘d’,‘e’,‘f’,‘g’]
list_ab = list_a + list_b
print(list_ab)
list = [2, 1, 3, 5, 4]
list.reverse()
print(list)
list = [2, 3, 4, 5, 1]
list.sort()
print(list)
import random
6.将一个1-10的数存入到列表中
ls = []
for i in range(10):
ls.append(random.randint(0, 10))
print(ls)
作业1.完成一个登录注册案例(要求使用容器保存数据)
import sys
users = []
login_user = None
while True:
print("**************~")
print("\t\t 1、用户注册")
print("\t\t 2、用户登录")
print("\t\t 3、显示当前所有用户信息")
print("\t\t 4、退出系统")
print("~*"*10)
choice = input(“请输入您的操作:”)
if choice == "1":
while True:
# 注册 将用户的名称和密码保存到服务器上
username = input("请输入用户名称:")
password = input("请输入用户密码:")
confirm_pass = input("请再次输入用户密码:")
# 数据校验
# 1、首先验证用户名称不能为空
if username == "" or username == None:
print("对不起,用户名称为空")
continue
# 2、验证用户名称不能重复
flag = True
for user in users:
if user.get("username") == username:
flag = False
if not flag:
print("对不起,该用户名称已经存在,请重新注册!!")
continue
# 3、密码小于3位
if len(password) < 3:
print("对不起,密码长度不能少于3位")
continue
if confirm_pass != password:
print("对不起,两次密码不一致")
continue
# 将数据保存下来
# TODO 密码加密问题
user = {"username": username, "password": confirm_pass}
users.append(user)
print("注册成功")
break
elif choice == "2":
username = input("请输入用户名称:")
password = input("请输入用户密码:")
flag = False
for user in users:
# if user.get("username") == username:
# if user.get("password") == password:
# print("恭喜您,登录成功")
# else:
# print("密码错误")
# else:
# print("用户名称错误")
if user.get("username") == username and user.get("password") == password:
flag = True
login_user = user
break
if flag:
print("恭喜您,登录成功")
else:
print("用户名称或者密码错误,登录失败")
elif choice == "3":
for u in users:
print(f"用户名称是{u.get('username')}")
elif choice == "4":
exit = input("您确定要退出系统吗?(Y/N):")
if exit == "Y" or exit == "y":
# 退出系统
sys.exit()
作业2.给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
list4=[“3”,“9”,“1”,“2”,“4”]
for i in range(len(list4)-1,0,-1):
for j in range(i):
if list4[j]>list4[i]:
list4[j], list4[i] = list4[i], list4[j]
print(list4)
作业3.求 a+aa+aaa+…+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
作业4.合并两个有序数组,合并后还是有序列表
ListNode* ReNewCombineList(ListNode* p1, ListNode* p2)//合并两个链表,生成第三个链表 递归
{
ListNode* pNewList = NULL;
//ListNode* p3 = NULL;
if (p1 == NULL)
return p2;
if (p2 == NULL)
return p1;
if (p1->data < p2->data)
{
pNewList = p1;
pNewList->next = ReNewCombineList(p1->next, p2);
}
else
{
pNewList = p2;
pNewList->next = ReNewCombineList(p1, p2->next);
}
return pNewList;
}
作业5.定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
int* sortArrayByParity(int* A, int ASize, int* returnSize)
{
*returnSize=ASize;
for (int i = 0; i < ASize; i++)
{
int flag = 0;
for (int j = 1; j <= ASize - i - 1; j++)
{
if (A[j - 1] %2 == 1)
{
flag = 1;
int tmp = A[j - 1];
A[j - 1] = A[j];
A[j] = tmp;
}
}
if (flag == 0)
{
break;
}
}
return A;
}
作业6.将10进制数据转换为二进制,并且统计其中的0和1的数量
def oneCount1(n):
# 使用Python内置bin函数转化成二进制;
print(bin(n))
if n < 0
n = n & 0xffffffff
print(n)
print(bin(n))
# 将2进制数转化为一个字符串,去除前两位"ob"
bin2 = str(bin(n))[2:]
print(bin2)
count = 0
for i in str(bin2):
if i == ‘1’:
count += 1
return count
print(oneCount1(12))
print(oneCount1(-12))