练习1:用户登录注册案例
import sys
idname = {'test':'123456'}
print(""" 英雄联盟商城登录界面
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
1. 用户登录
2. 新用户注册
3. 退出系统
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
""")
a = int(input("(温馨提示)请输入您的选项:"))
if a == 1:
b = input("请输入您的账号:")
c = input("请输入您的密码:")
if b in idname.keys()and c == idname[b]:
print(idname[b])
print("登录成功!")
else:
print("登录失败!")
elif a == 2:
a = input("请输入您的账号:")
if a in idname.keys():
print("该账号已被注册!")
else:
b = input("请输入您的密码:")
idname[a] = b
print("注册成功!")
elif a == 3:
print("退出系统!")
sys.exit()
else:
print("请输入正确的选项!")
英雄联盟商城登录界面
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
1. 用户登录
2. 新用户注册
3. 退出系统
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
(温馨提示)请输入您的选项:1
请输入您的账号:test
请输入您的密码:123456
123456
登录成功!
英雄联盟商城登录界面
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
1. 用户登录
2. 新用户注册
3. 退出系统
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
(温馨提示)请输入您的选项:2
请输入您的账号:11
请输入您的密码:11
请输入您的密码:11
注册成功!
英雄联盟商城登录界面
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
1. 用户登录
2. 新用户注册
3. 退出系统
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
(温馨提示)请输入您的选项:2
请输入您的账号:11
请输入您的密码:11
注册成功!
英雄联盟商城登录界面
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
1. 用户登录
2. 新用户注册
3. 退出系统
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
(温馨提示)请输入您的选项:2
请输入您的账号:test
该账号已被注册!
英雄联盟商城登录界面
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
1. 用户登录
2. 新用户注册
3. 退出系统
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
(温馨提示)请输入您的选项:3
退出系统!
练习2: 求50~150之间的质数是那些?
num = int(input("请输入一个整数,判断该数是否是质数:"))
flag = True
for i in range(2, num // 2 + 1):
if num % i == 0:
flag = False
break
if flag:
print(f"{num}是个质数")
else:
print(f"{num}是个合数")
练习3:打印输出标准水仙花数,输出这些水仙花数
def num():
for flower in range(100,1000):
a = flower//100
b = flower//10%10
c = flower%10
if flower == a**3+b**3+c**3:
print(flower)
num()
练习4:一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.
def num ():
for i in range(10000,100000):
num1=i * 10 + 7
num2=i + 700000
if num2/num1==5:
print(i)
num()
练习5:有一堆硬币,每次
只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]
def min_moves_to_finish_coins(coins):
count = 0
while coins:
if len(coins) % 2 == 1:
coins.pop(0)
else:
coins.pop(0)
coins.pop(0)
count += 1
return count
coins_list = [10, 8, 5, 3, 27, 99]
print(min_moves_to_finish_coins(coins_list))
练习6: 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"
twin_primes = []
for i in range(2, 98):
if (i % 2 != 0) and (i + 2 % 2 != 0):
is_prime_i = True
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0:
is_prime_i = False
break
is_prime_i_plus_2 = True
for k in range(2, int((i + 2) ** 0.5) + 1):
if (i + 2) % k == 0:
is_prime_i_plus_2 = False
break
if is_prime_i and is_prime_i_plus_2:
twin_primes.append((i, i + 2))
print("100以内的孪生素数有:")
for pair in twin_primes:
print(pair)
练习7: 给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
nums = [5, 3, 8, 1, 9, 2]
max_num = nums[0]
min_num = nums[0]
total_sum = 0
num_count = len(nums)
for num in nums:
if num > max_num:
max_num = num
elif num < min_num:
min_num = num
total_sum += num
average = total_sum / num_count
print("最大值:", max_num)
print("最小值:", min_num)
print("平均值:", average)
print("求和:", total_sum)
练习8:
将list中的重复数据去重,至少使用两种方案
#方案一
nums = [3, 5, 2, 3, 7, 5, 1, 3, 2]
# 使用set去除重复元素
unique_nums = list(set(nums))
print(unique_nums)
#方案二
nums = [3, 5, 2, 3, 7, 5, 1, 3, 2]
unique_nums = []
for num in nums:
if num not in unique_nums:
unique_nums.append(num)
print(unique_nums)
练习9:如何将0-10随机存入列表中
num = set({1,2,3,4,5,6,7,8,9,10})
print(list(num)