python双重循环及列表,集合,字典的使用

1.编写程序,以每行5个的形式输出3-100以内的所有的素数。

s = 0
for i in range(2, 100):
    for j in range(2, i):
        if i % j == 0:
            break
        else:
            print(i, end=" ")
            s += 1
            if s % 5 == 0:
                print("\n")
            break

2.生成一个列表,列表元素分别为[1**1, 2**2, 3**3,...9**9]

li = []
for i in range(1, 10):
    li.append(i ** i)
print(li)

3.找出1~10之间所有偶数,返回一个列表,包含以这个偶数为半径的圆的面积。

import math

li = []
for i in range(2, 11, 2):
    if i % 2 == 0:
        area = math.pi * i * i
        li.append(area)
print(li)

4.假设有三个列表: Istwho=["小马","小羊,"小鹿"], Istwhere["草地上","电影院","家里"], Istwhat=["看电影","听故事","吃晚饭"]。写出所有造句结果.

Istwho = ["小马", "小羊", "小鹿"]
Istwhere = ["草地上", "电影院", "家里"]
Istwhat = ["看电影", "听故事", "吃晚饭"]
for i in Istwho:
    for j in Istwhere:
        for k in Istwhat:
            print(i, "在", j, k)

5.已知list = [1,2,3,4,5,6,7,8,9,10]

(1)将列表list中的元素按奇数和偶数进行过滤,将结果分别存储到2个新列表list1和list2中

(2)将list1中的元素作为十位数和list2中对应位置的元素相加,将结果保存到列表list3中

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list1 = []
list2 = []
for i in list:
    if i % 2 == 0:
        list1.append(i)
    else:
        list2.append(i)
print(list1)
print(list2)
list3 = []
for j in range(len(list1)):
    for k in range(len(list2)):
        list3.append(list1[j] * 10 + list2[k])
print(list3)

6.某学校新招聘了8名教师,已知该学校有3个空闲办公室且工位充足,现需要随机安排这8名教师的工位。要求编写程序,实现将8名教师随机分配到办公室的功能。

import random

l = [1, 2, 3]
n = ["a", "b", "c", "d", "e", "f", "g", "h"]
r = [[], [], []]
for i in n:
    c = random.choice(l)
    r[c - 1].append(i)
for i in range(len(r)):
    print("第%d个办公室共分配%d个人,分别是:" % (i + 1, len(r[i])))
    for j in r[i]:
        print(j, end=" ")
    print()

7.随机生成50个1到30之间的整数,编写程序实现删除该50个整数中重复的数据,并输出删除前与删除后的数据。

# 方法一
import random

l1 = []
for i in range(50):
    a = random.randint(1, 30)
    l1.append(a)
print(l1)
l2 = list(set(l1))
print(l2)

# 方法二
import random

l1 = []
l2 = []
for i in range(50):
    a = random.randint(1, 30)
    l1.append(a)
print(l1)
for i in l1:
    if i not in l2:
        l2.append(i)
print(l2)

8.系统里面有多个用户,用户的信息目前保存在列表里:users=[“root”,”admin”],passwd=[“123”,”456”],请编写程序,判断用户是否能成功登录,具体要求如下:

(1)判断用户是否存在:如果存在,判定用户密码是否正确,如果正确登录成功,退出循环,如果密码错误,重新登录,共有三次机会

(2)如果用户不存在,重新登录,总共有三次机会

users = ["root", "admin"]
passwd = ["123", "456"]
j = 3
while True:
    a = input("请输入用户名:")
    b = input("请输入密码:")
    if a in users:
        if b in passwd:
            print("登录成功")
            break
    else:
        j -= 1
        print("密码错误,请重新输入,你还剩%d次机会" % j)
        if j == 0:
            print("你的机会已用完")

9.现有若干个学生名单,存放在列表中,要求编写程序查找某个学生在该班中是否存在,若存在,将其删除,若该班同名同姓的不只是一个,则将其全部删除。

l = ["a", "b", "c", "d", "e", "f", "a", "a"]
w = input("请输入学生的名字:")
while True:
    if w in l:
        print("学生存在")
        l.remove(w)
    else:
        print("学生不存在")
        break
print("学生名单为:%s" % l)

10.给出一个字符串,统计每个字符出现的个数

d = dict()
string = str(input("请输入字符串:"))
for i in string:
    if i in d.keys():
        d[i] = d[i] + 1
    else:
        d[i] = 1
for i, k in d.items():
    print(i, ":", k)

11.输入一行字符串,统计字符串中数字字符,字母字符,空格字符及其它字符的个数,并输出统计后的结果.

str = input("请输入一行字符串:")
zimu = 0
num = 0
kongge = 0
other = 0
for i in range(len(str)):
    if str[i].isalpha():
        zimu += 1
    elif str[i].isdigit():
        num += 1
    elif str[i].isspace():
        kongge += 1
    else:
        other += 1
print("字母的个数为:", zimu)
print("数字的个数为:", num)
print("空格的个数:", kongge)
print("其他字符的个数为:", other)

12.给出一个列表li_one = [1, 2, 1, 2, 3, 5, 4, 3, 5, 7, 4, 7, 8],移除掉相同的数字(去重)

li_one = [1, 2, 1, 2, 3, 5, 4, 3, 5, 7, 4, 7, 8]
d = dict()
for i in li_one:
    if i in d.keys():
        d[i] = d[i] + 1
    else:
        d[i] = 1
for i, k in d.items():
    if k > 1:
        li_one.remove(i)
print(li_one)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖暖的味道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值