作业1
- 统计列表中每个元素出现的次数。
nums = [100,-1,1,100,100,100,-2,-1,0,1,2]
分析:
列表中使用count方法 可以统计元素出现的次数。
nums = [100,-1,1,100,100,100,-2,-1,0,1,2]n1 = nums.count(100)print(n1)n2 = nums.count(-1)print(n2)
根据上面,初步可以使用for循环的方式来统计
nums = [100,-1,1,100,100,100,-2,-1,0,1,2]for n in nums:print(n,nums.count(n))
这种方式统计出来的结果。结果有冗余。
将列表转换为集合。通过循环集合来获取每个元素出现的次数。
nums = [100,-1,1,100,100,100,-2,-1,0,1,2]# 将列表转换集合,去掉重复数据。set_nums = set(nums)# 循环集合for n in set_nums:print(f"{n}出现了{nums.count(n)}次")

- 定义一个函数,生成随机一个11位手机号码
```python import randomdef phone():pass
def phone():
# 前3位pre_3 = ["130","131","132","133","134","135","136","137","138","139","150","151",'156','155','157','158','159']# 随机从列表中选择一个p_num = random.choice(pre_3)print(p_num)# 生成后8位# 循环8次for i in range(8):# 每次都生成一个 0-9 之间的随机数n = random.randint(0,9)# 将生成的数字 跟前面生成手机前三位拼接p_num = p_num+str(n) # str(n) 将数字转换为字符串# for循环执行完成,最终生成结果.print(p_num)
调用
phone()
3. 模拟ATM取款机输入密码登录,如果密码输入错误,提示用户重新输入。输入成功,进入到系统。失败3次,结束程序。```pythonpasswd = "8989"# 现在开始模拟输入密码
for循环else
passwd = "8989"# 现在开始模拟输入密码for i in range(3):pwd = input("请输入密码:")# 如果输入正确if passwd == pwd:print("密码输入成功,进入系统")breakelse:print("密码输入错误!")else: # 如果for循环正常执行完毕,会执行esle中的语句print("错误次数已经达到3次,请明天再试!")
作业延申
- 还是这个列表。
里面的元素值按照从小到大 的顺序,统计每个元素出现的次数。 ```python nums = [100,-1,1,100,100,100,-2,-1,0,1,2]nums = [100,-1,1,100,100,100,-2,-1,0,1,2]
去重 使用集合的特性进行去重
nums_set = set(nums) print(nums_set)
排序 将集合转换为列表
nums_list = list(nums_set) print(nums_list)
列表进行排序
nums_list.sort() print(nums_list) # [-2, -1, 0, 1, 2, 100]
循环已经排好序的列表,来统计每个元素出现的次数
for n in nums_list: print(f”数字\t{n}\t在列表nums中出现了\t{nums.count(n)}\t次”)
<a name="RanF2"></a># 嵌套循环可以在循环中再编写循环。```pythonresults = {"data":[{"id": 1, "goodsname": "iphone", "price": 5666},{"id": 2, "goodsname": "xiaomi", "price": 8666},{"id": 3, "goodsname": "huawei", "price": 2666},{"id": 4, "goodsname": "hongmi", "price": 3666},]}# 将data 中每个商品按照 price价格的从低到高 排序, 输出对应的商品名。print(results["data"])# 定义一个空的列表all_price = []# 循环data 列表中的每个元素for good in results["data"]:# print(good)for k,v in good.items():# 获取商品的价格if k == "price":print(v)# 价格放在列表中all_price.append(v)# 所有的商品循环完毕print(f"所有的商品价格 {all_price}")# 价格进行排序all_price.sort()print(f'排序完成之后的价格 {all_price}')# 根据价格找到对应的商品名称for p in all_price:# 拿到已经排好序的价格for good in results["data"]:for k,v in good.items():# 如果price 字段的值 跟排好序的价格一样if k=="price" and v == p:print(f" {p} 对应的商品名字:{good['goodsname']}")
嵌套循环的时候一定要主要保持格式上的缩进。

