惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
V
Vulnerabilities – Threatpost
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
B
Blog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
H
Hacker News: Front Page
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园_首页
D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
W
WeLiveSecurity
N
News and Events Feed by Topic
F
Fortinet All Blogs
PCI Perspectives
PCI Perspectives
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Recent Announcements
Recent Announcements
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
Hacker News: Ask HN
Hacker News: Ask HN
爱范儿
爱范儿
腾讯CDC
Last Week in AI
Last Week in AI
月光博客
月光博客
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Help Net Security
Help Net Security
V
V2EX
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Heimdal Security Blog
L
LINUX DO - 最新话题
GbyAI
GbyAI
The Hacker News
The Hacker News
罗磊的独立博客
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 【当耐特】
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V2EX - 技术
V2EX - 技术
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
O
OpenAI News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

卷卷

今日说法 节目汇总笔记 《斯坦福大学人生设计课》读书笔记 我的书单📖 H-worm (VBS蠕虫) 感染事件溯源分析报告 AMOS (Atomic Stealer) 恶意软件深度分析 银狐26年全面复活,对抗强度或已超25年最高水平 Atomic Stealer (AMOS) 回归:ClickFix、伪装加密货币应用与新型 macOS 持久化机制 关于xt.exe的分析报告 仿真钓鱼页面窃取用户凭证 GitHub Pages配置Cloudflare CDN踩坑之路 推荐RSS热力图和Github热力图使用指南 学习逆向工程相关概念 zabbix快速上手 学习python高级语法特性例题笔记 学习云计算基本理论学习笔记 学习Docker-Compose命令及镜像构建与推送 ATT &CK 框架实践阅读笔记 rundll32.exe恶意加载DLL文件外联 《悉达多》读书笔记 《稀缺》读书笔记 《认知觉醒》读书笔记 《营养学》读书笔记 《心理学》读书笔记 热💖生活 C++开发环境配置与程序运行笔记 IDA Free调试Hello World笔记 逆向免杀 Admin.canway账号命名方式 BAS - Breach and Attack Simulation Windows核心系统进程链与svchost深度解析 企业测试环境的弱口令需要整改吗 AI对话笔记-模板 网络安全行业招聘需求与技术能力分析 银狐木马技术原理分析与检测技术 SIEM-安全信息和事件管理 AI笔记 转载 专业备考⏳ 其他杂项🧶 Markdown 原生图片 知道创宇技能表 Prompt越狱手册 deepseek使用指南 清华大学 deepseek提问方法 markdown基本语法 数据湖:它们是什么?为什么您的组织需要一个? GitHub Codespaces velociraptor(迅猛龙)快速上手 学习windows快捷命令 学习常用 150 个Linux命令 软考中的一些概念 学习ssh基本使用 Linux系统换源输入法和包管理器 DC-8靶机 Metasploitable3下载与安装 信息收集方法及流程 防守之道 开发运维 免责声明 密码喷射攻击:防范攻击你需要知道的事项 密码学中的哈希解释:它的工作原理、算法和实际用途 应急响应术语 各种报错积累 漏洞挖掘思路 收藏夹 RDP和360星图使用 windows入侵排查 Linux入侵排查 Redis日志分析 Linux安全加固 windows安全加固 windows日志ID速查 中间件加固 数据库安全加固 windows系统提权 MySQL注入复盘 学习git版本控制工具的概念与命令 学习Web Shell 学习Linux命令 java环境配置 学习Mysql基础知识 windows权限维持 学习网络及安全的一些术语 PHP代码审计 Linux系统提权 MSSQL注入复盘 Linux权限维持 命令执行和反序列化 逻辑漏洞 upload-labs 框架漏洞 学习PHP语法特性 XXE&SSRF CSRF 文件上传 Google Hacking XSS-lab XSS实验 学习URL请求后的通信过程 FOFA
学习python基础语法特性解题笔记
卷卷 · 2023-12-10 · via 卷卷

使用输入函数input输入人的身高、体重。计算BMI值,并输出。 BMI=体重/身高的平方

height = float(input("请输入身高:")) 
weight = int(input("请输入体重:")) 
BMI = weight / (height * height) 
print("你的BMI是:", BMI)

List item已知温度转换的公式是 C=(F-32)/1.8F=C*1.8+32输入一个摄氏温度以C或c结尾,转换成华氏温度。输入一个华氏温度以F或f结尾,转换成摄氏温度。

temp = input("请输入摄氏或华氏温度:")
#切出最后一位用来判断是华氏还是摄氏
last = temp[-1]
print(last)
temp_number = float(temp[:-1])
if (last == 'f' or last == 'F'):
    C = (temp_number - 32) / 1.8
    print("华氏转摄氏温度为:", C ,'C')

elif (last == 'c' or last == 'C'):
    F = temp_number * 1.8 + 32
    print("摄氏转华氏温度为:", F ,'F')
else:
    print("输入温度格式不对")

使用range函数生成1到100(包含100)之间的偶数数列。使用range函数生成20到0()包含0)的整数数列。

  • 使用列表推导式生成偶数数列
even_numbers = [i for i in range(1, 101) if i % 2 == 0] print(even_numbers)
  • 使用range函数生成递减的整数数列
 decreasing_numbers = list(range(20, -1, -1))
 print(decreasing_numbers)

计算圆的周长、面积和球体的表面积、体积。

 r = int(input("半径:"))
PI = 3.1415926
print("圆的周长为:", round(2 * PI * r, 2))
print("圆的面积为:", round(PI * r * r, 2))
print("球的表面积为:", round(4 * PI * pow(r, 2), 2))
print("球的体积为:", round((4 / 3) * PI * pow(r, 3), 2))
import random
from functools import reduce

输入一个整数,以列表的形式输出每一位,并输出列表的和。

 number = int(input("请输入一个整数: "))
 numberList = list(map(int, str(number)))
 print("每一位组成的列表:", numberList)
 listSum = sum(numberList)
 print("列表的和:", listSum)

请输入一个整数: 233
每一位组成的列表: [2, 3, 3]
列表的和: 8

输入一个整数,输出对应的二进制、八进制、十六进制。

 scale = int(input("输入一个整数: "))
 print("转二进制:", bin(scale))
 print("转八进制:", oct(scale))
 print("转十六进制:", hex(scale))

请输入一个整数: 234
转二进制为: 0b11101010
转八进制为: 0o352
转十六进制为: 0xea

输入一些整数,以逗号分隔,计算并输出这些数的平均值。

 averageStr = input("请输入一些整数,以逗号分隔:")
 averageList = list(map(int, averageStr.split(',')))
 print("平均值为:", sum(averageList)/len(averageList))

请输入一些整数,以逗号分隔:12,12,34
平均值为: 19.333333333333332

以列表的形式输入一些整数,计算并输出这些数的平均值、最大值、最小值。

 from statistics import mean
 listStr = input("请输入列表[xOne,xTow,...]:")
 listNumber = eval(listStr)  eval像什么转什么,字符串转列表
 print("平均值", mean(listNumber))
 print("最大值", max(listNumber))
 print("最小值", min(listNumber))

请输入列表[xOne,xTow,...]:[11,22,33]
平均值 22
最大值 33
最小值 11

以列表的形式输入一些整数,降序输出。

 listStr = input("请输入列表[xOne,xTow,...]:")
 listNumber = eval(listStr)  eval像什么转什么,字符串转列表
 print(sorted(listNumber, reverse=True))
# reverse:一个布尔值,表示排序是降序还是升序。
# 默认为 False,表示升序排序;
# 如果为 True,则进行降序排序。

请输入列表[xOne,xTow,...]:[11,22,33,44,12,45,90,67] [90, 67, 45, 44,
33, 22, 12, 11]

编写程序,输入两个各包含2个实数的列表,分别表示点的坐标,计算两点间的欧式距离和曼哈顿距离。

 point1 =list(map(float, input("请输入第一个逗号分割的点坐标:").split(',')))
 point2 =list(map(float, input("请输入第二个逗号分割的点坐标:").split(',')))
 import math
 def euclidean_distance(point1, point2):   计算欧式距离
     xOne, y1 = point1
     xTow, y2 = point2
     return math.sqrt((xTow - xOne) ** 2 + (y2 - y1) ** 2)
 def manhattan_distance(point1, point2):  计算曼哈顿距离
     xOne, y1 = point1
     xTow, y2 = point2
     return abs(xTow - xOne) + abs(y2 - y1)
 euc_dist = euclidean_distance(point1, point2)
 man_dist = manhattan_distance(point1, point2)
 print(f"两点间的欧式距离为: {euc_dist:.2f}")
 print(f"两点间的曼哈顿距离为: {man_dist:.2f}")  注意格式化有大括号和f

请输入第一个逗号分割的点坐标:2,3
请输入第二个逗号分割的点坐标:4,5
两点间的欧式距离为: 2.83
两点间的曼哈顿距离为: 4.00

输入一个列表,如果列表全为真,输出True,否则输出False

 listStr = input("请输入列表[xOne,xTow,...]:")
 print(all(eval(listStr)))  eval像什么转什么,字符串转列表

请输入列表[xOne,xTow,...]:[1,2,3,4,5]
True

输入一个列表,如果列表中有一个为真,输出True,否则输出False

 listStr = input("请输入列表[xOne,xTow,...]:")
 print(any(eval(listStr)))  eval像什么转什么,字符串转列表

请输入列表[xOne,xTow,...]:[1,2,3,4,5,6]
True

输入一个整数,输出整数分离后的和。例如输入1234,输出10

 number = int(input("请输入一个整数: "))
 print("列表的和:", sum(list(map(int, str(number)))))

请输入一个整数: 234567
列表的和: 27

输入一个整数,输出分离后的整数,以逗号分隔。例如输入1234,输出:1,2,3,4

 number = int(input("请输入一个整数: "))
 print(','.join(str(number)))

请输入一个整数: 2023
2,0,2,3

编写一个函数,测试字符串是否包含列表中某个元素作为子串

 def text(s, lst):
     for element in lst:
         if element in s:
             return True
     return False
 s = "Hello, world!"   s里包含Hello
 lst = ["python", "Hello"]
 print(text(s, lst))

True

生成一个1到1e20的随机整数,对这个数进行分离,依次输出每位数,用逗号分隔。

 def randomFun():
     number = random.randint(0,9)
     return number
 number = randomFun()
 while number==0:
     number = randomFun()
 print(number)
 #-----------------以上为确保第一位不为0------------
 listOne =[random.randint(0, 9) for _ in range(19)]  #使用列表生成式生成19个0到9的随机整数
 print(listOne)
 print([number]+listOne) # []是让数值变为列表类型

1
[9, 7, 1, 2, 3, 6, 8, 9, 2, 5, 1, 8, 4, 5, 7, 5, 2, 1, 9]
[1, 9, 7, 1, 2, 3, 6, 8, 9, 2, 5, 1, 8, 4, 5, 7, 5, 2, 1, 9]

用列表生成式,随机生成20个0到100的整数,分别计算平均值、最大值、最小值。

 random_number = [random.randint(0, 100) for _ in range(20)]  使用列表生成式生成20个0到100的随机整数
 print("平均值:", sum(random_number) / len(random_number))
 print("最大值:", max(random_number))
 print("最小值:", min(random_number))

平均值: 45.7
最大值: 94
最小值: 1

用列表生成式,随机生成4x5的列表,即该列表有5个元素,每个元素是一个列表,列表含有4个元素。分别求最大的列表,和求和最大的列表,并输出。

 import random
 # 随机生成4x5的列表,每个子列表包含4个随机整数
 matrix = [[random.randint(0, 100) for _ in range(4)] for _ in range(5)]
 # 分别用于存储包含最大元素的子列表和元素和最大的子列表
 maxList = None
 maxSumList = None
  #用于存储最大元素值和最大元素和
 max_element_value = float('-inf')
 max_sum_value = float('-inf')
 for sublist in matrix:
      #计算当前子列表的元素和
     current_sum = sum(sublist)
     # 检查当前子列表是否包含最大元素
     if max(sublist) > max_element_value:
         max_element_value = max(sublist)
         maxList = sublist
         # 检查当前子列表的元素和是否最大
     if current_sum > max_sum_value:
         max_sum_value = current_sum
         maxSumList = sublist
 print("包含最大元素的子列表:", maxList)
 print("元素和最大的子列表:", maxSumList)

包含最大元素的子列表: [58, 97, 59, 77]
元素和最大的子列表: [58, 97, 59, 77]

任意输入3个英文单词,以空格分隔分隔,输出字符串长度最大的。

 words = input("请输入3个英文单词,以空格分隔:").split()
 if len(words) != 3:
     print("请输入3个单词!")
 else:
     maxLen = 0
     max_word = ""
     for word in words:
         if len(word) > maxLen:
             maxLen = len(word)
             max_word = word
     print("字符串长度最大的单词是:", max_word)

请输入3个英文单词,以空格分隔:hello world youzezhang
字符串长度最大的单词是: youzezhang

随机生成10个整数,分别按字符的字典顺序、按长度、转换为整数比较大小。 Key

 integers = [random.randint(1, 100) for _ in range(10)]
 strings = [str(i) for i in integers]
 print("按字符的字典顺序排序:", sorted(strings))
 print("按长度排序:", sorted(strings, key=len))
 print("按整数大小排序:", sorted(integers))

按字符的字典顺序排序: ['30', '36', '46', '47', '52', '63', '64', '64', '74', '84']
按长度排序: ['30', '46', '74', '36', '64', '63', '47', '84', '64', '52']
按整数大小排序: [30, 36, 46, 47, 52, 63, 64, 64, 74, 84]

随机生成两个长度为10列表,将两个列表对应位置的数相加;将两个列表对应位置的数相乘;将两个列表对应位置的数相乘后得到的列表求和(向量内积)。

 integers1 = [random.randint(1, 10) for _ in range(10)]
 integers2 = [random.randint(1, 10) for _ in range(10)]
 print("列表1:", integers1)
 print("列表2:", integers2)
 listSun = [a + b for a, b in zip(integers1, integers2)]
 print("相加后的列表:", listSun)
 productLIst = [a * b for a, b in zip(integers1, integers2)]
 print("相乘后的列表:", productLIst)
 print("列表求和:", sum(productLIst))

列表1: [1, 9, 2, 4, 4, 3, 9, 10, 8, 4]
列表2: [5, 5, 7, 5, 10, 1, 1, 8, 6, 10]
相加后的列表: [6, 14, 9, 9, 14, 4, 10, 18, 14, 14]
相乘后的列表: [5, 45, 14, 20, 40, 3, 9, 80, 48, 40]
列表求和: 304

用range函数生成首项为1,公差为3,小于50的等差数列。用reduce函数求该数列的和。

 from functools import reduce
 numberList = range(1, 50, 3)
 numberSum = reduce(lambda x, y: x + y, numberList)
 print("等差数列:", list(numberList))
 print("数列和:", numberSum)

等差数列: [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49]
数列和: 425

用range函数生成1到10的数字,计算这些数字的乘积。随机生成三个小于10的整数,计算这些数字的乘积。

 numberList = range(1, 11, 1)
 numberListTow = random.choices((range(1, 11, 1)), k=3)
 print("1到10的数字:", list(numberList))
 print("1-10的3个数字:", list(numberListTow))
 numberSum = reduce(lambda x, y: x * y, numberList)
 numberSumTow = reduce(lambda x, y: x * y, numberListTow)
 print("数字乘积:", numberSum)
 print("1-10的3个数字乘积:", numberSumTow)

1到10的数字: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
1-10的3个数字: [10, 6, 1]
数字乘积: 3628800
1-10的3个数字乘积: 60

随机生成200个在[0到100]的整数,并把奇数放到一个列表中,偶数放到另一个列表中,计算奇数和偶数的个数。

integers1 = [random.randint(1, 101) for _ in range(200)]
 odd_number = []
 even_number = []
 for number in integers1:
     if number % 2 == 0:
         even_number.append(number)
     else:
         odd_number.append(number)
 print("200个随机数:", integers1)
 print("奇数列表:", odd_number)
 print("偶数列表:", even_number)
 print("奇数个数:", len(odd_number))
 print("偶数个数:", len(even_number))
 
  #200个随机数: [42, 37, 100, 4, 13, 87, 46, 89, 61, 20, 7, 22, 84, 86, 9, 31, 20, 94, 40, 65, 93, 23, 22, 24, 71, 49, 67, 43, 48, 14, 72, 53, 31, 82, 17, 43, 7, 67, 15, 66, 45, 41, 6, 73, 9, 92, 80, 27, 39, 53, 10, 64, 11, 67, 67, 26, 60, 99, 72, 100, 86, 37, 99, 55, 45, 79, 32, 100, 97, 56, 47, 39, 29, 88, 14, 94, 32, 84, 52, 59, 86, 17, 41, 66, 61, 53, 45, 16, 35, 80, 10, 38, 67, 16, 72, 99, 85, 36, 70, 65, 23, 67, 101, 63, 33, 39, 77, 95, 61, 35, 38, 85, 71, 1, 29, 12, 96, 49, 29, 34, 53, 71, 8, 25, 80, 54, 87, 14, 2, 27, 63, 51, 36, 79, 5, 93, 43, 9, 57, 17, 15, 38, 22, 60, 88, 27, 92, 1, 52, 18, 85, 52, 93, 99, 75, 32, 15, 62, 30, 79, 53, 38, 45, 63, 1, 1, 96, 1, 13, 46, 81, 49, 82, 41, 95, 37, 2, 73, 13, 5, 65, 13, 73, 22, 39, 31, 41, 51, 90, 5, 30, 3, 93, 66, 69, 92, 22, 48, 65, 68]
  #奇数列表: [37, 13, 87, 89, 61, 7, 9, 31, 65, 93, 23, 71, 49, 67, 43, 53, 31, 17, 43, 7, 67, 15, 45, 41, 73, 9, 27, 39, 53, 11, 67, 67, 99, 37, 99, 55, 45, 79, 97, 47, 39, 29, 59, 17, 41, 61, 53, 45, 35, 67, 99, 85, 65, 23, 67, 101, 63, 33, 39, 77, 95, 61, 35, 85, 71, 1, 29, 49, 29, 53, 71, 25, 87, 27, 63, 51, 79, 5, 93, 43, 9, 57, 17, 15, 27, 1, 85, 93, 99, 75, 15, 79, 53, 45, 63, 1, 1, 1, 13, 81, 49, 41, 95, 37, 73, 13, 5, 65, 13, 73, 39, 31, 41, 51, 5, 3, 93, 69, 65]
  #偶数列表: [42, 100, 4, 46, 20, 22, 84, 86, 20, 94, 40, 22, 24, 48, 14, 72, 82, 66, 6, 92, 80, 10, 64, 26, 60, 72, 100, 86, 32, 100, 56, 88, 14, 94, 32, 84, 52, 86, 66, 16, 80, 10, 38, 16, 72, 36, 70, 38, 12, 96, 34, 8, 80, 54, 14, 2, 36, 38, 22, 60, 88, 92, 52, 18, 52, 32, 62, 30, 38, 96, 46, 82, 2, 22, 90, 30, 66, 92, 22, 48, 68]
  #奇数个数: 119
  #偶数个数: 81

随机生成两个长度为10列表,用zip函数把两个列表压缩。

 integers1 = [random.randint(1, 100) for _ in range(10)]
 print(list(integers1))
 integers2 = [random.randint(1, 100) for _ in range(10)]
 print(list(integers2))
 zip1 = zip(integers1, integers2)
 print(list(zip1))

[19, 49, 99, 62, 71, 41, 43, 4, 58, 85]
[49, 96, 38, 94, 42, 65, 61, 16, 36, 2]
[(19, 49), (49, 96), (99, 38), (62, 94), (71, 42), (41, 65), (43, 61), (4, 16), (58, 36), (85, 2)]

编写程序,输入一个正整数,然后输出各位数字之和。

 number = int(input("请输入一个正整数: "))
 if number > 0:
     print("列表的和:", sum(list(map(int, str(number)))))
 else:
     print("输入的不是正整数")

编写程序,输入一个字符串,输出翻转(首尾交换)后的字符串,要求使用内置函数来实现。例如,12345,输出54321

  s = input("请输入一个字符串: ")
  print("翻转后的字符串是: ", s[::-1])

请输入一个字符串: dwjefkelf
翻转后的字符串是: flekfejwd

编写程序,输入一个包含若干整数的列表,输出列表中,最大值。

number = input("请输入列表空格分隔: ").split( )
 max_number = max(list(map(int, number)))
 print(max_number)

编写程序,输入一个包含若干整数的列表,把列表中所有整数转换为字符串,然后输出包含这些字符串的列表。

listStr = eval(input("请输入列表[xOne,xTow,...]:"))
print(list(map(str,listStr)))

编写程序,输入一个包含若干任意数据的列表,输出该列表中等价于True的元素组成的列表。例如,输入[1,2,0,[]],输出[1,2]

 number = input("请输入任意数据类型的列表空格分隔: ").split( )
 listOne = [eval(number) for number in number]
 print(listOne)
 listTow = [item for item in listOne if item]  item被放入列表值  if item 求布尔
 print(listTow)

请输入任意数据类型的列表空格分隔: [] 0 8 9 90 6 8
[[], 0, 8, 9, 90, 6, 8]
[8, 9, 90, 6, 8]

编写程序,输入一个包含若干整数的列表,输出一个只包含奇数的新列表。

import math
 number = input("请输入列表空格分隔: ").split()
 number = list(map(int, number))
 oddNumber = [item for item in number if item % 2 == 1]
 print(oddNumber)

请输入列表空格分隔: 1 2 3 4 5 6
[1, 3, 5]

编写程序,输入一个包含若干整数的列表,输出一个只包含偶数的新列表。

 number = input("请输入列表空格分隔: ").split()
 number = list(map(int, number))
 evenNomber = [item for item in number if item % 2 == 0]
 print(evenNomber)

请输入列表空格分隔: 1 2 3 4 5 6
[2, 4, 6]

编写程序,输入一个包含若干整数的列表,输出一个一个新列表,列表中奇数在前前偶数在后,并且奇数之间的相对顺序不变,偶数之间的相对顺序也不变。

 number = input("请输入列表空格分隔: ").split()
 number = list(map(int, number))
 oddNumber = [item for item in number if item % 2 == 1]
 ouhsu = [item for item in number if item % 2 == 0]
 heb = oddNumber + ouhsu
 print(heb)

请输入列表空格分隔: 1 2 3 4 5 6 7 8 9
[1, 3, 5, 7, 9, 2, 4, 6, 8]

输入一个包含若干自然数的列表,输出这些自然数的平均值,结果保留3小数。

 number = input("请输入列表空格分隔: ").split()
 number = list(map(int, number))
 avg = round(sum(number)/len(number),3)
 print(avg)

请输入列表空格分隔: 1 2 3 4 5 4 3 2 1
2.778

输入一个包含若干自然数的列表,输出这些自然数降序排列后的新列表。

 number = input("请输入列表空格分隔: ").split()
 number = list(map(int, number))
 sort = sorted(number,reverse=True)
 print(sort)

请输入列表空格分隔: 54675678 33 21312 6786
[54675678, 21312, 6786, 33]

输入一个包含若干自然数的列表,输出一个新列表,新列表中每个元素为原列表中每个自然数的位数。

 number = input("请输入列表空格分隔: ").split()
 len_list = [len(item) for item in number]
 print(len_list)

请输入列表空格分隔: 23234 34 56 7 88 987
[5, 2, 2, 1, 2, 3]

输入一个包含若干数字的列表,输出其中绝对值最小的数字。

 number = input("请输入列表空格分隔: ").split()
 number = list(map(int, number))
 abs_list = [abs(item) for item in number]
 min_number = min(abs_list)
 print(min_number)

请输入列表空格分隔: 11 -11 2 3 -1 34
1

输入一个包含若干整数的列表,输出这些整数的乘积

 number = input("请输入列表空格分隔: ").split()
 number = list(map(int, number))
 chen =1
 for number in number:
     chen *=number
 print(chen)

请输入列表空格分隔: 4 5 5
100

输入两个包含若干整数的等长列表,把这两个列表看作两个向量,输出这两个向量的内积。

 numberOne = list(map(int, (input("请输入列表空格分隔: ").split())))
 numberTow = list(map(int, (input("请输入列表空格分隔: ").split())))
 if len(numberOne) == len(numberTow):
     sum = sum(a * b for a, b in zip(numberOne, numberTow))
     print(sum)
 else:
     print("不等长")

请输入列表空格分隔: 1 2 3 4 5 6
请输入列表空格分隔: 6 5 4 3 2 1
56

输出奇数索引元素


num = [2,5,8,1,5,8,9,3,6]
print(num[1::2])
[5, 1, 8, 3]

输出列表中奇数

 num = [1,3,7,9,2,5,8,3,7,8,3,6,9,5]
 for i in num:
     if i%2==1:
         print(i,end=',')

1,3,7,9,5,3,7,3,9,5,

将元素*2

 print([i*2 for i in range(1,11)])

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

键盘输入 5 个数判断是否是回文

 num = list(input("请输入数"))
 nums = list(reversed(num))
 print(nums)
 print(num)
 for i in num:
     for j in nums:
         if i==j:
             tag = 0
         else:
             tag =1
 if tag:
     print("不是回文")
 else:
     print("是回文")

请输入数 12345
['5', '4', '3', '2', '1']
['1', '2', '3', '4', '5']
不是回文

['1', '2', '3', '2', '1']
['1', '2', '3', '2', '1']
是回文

生成一个包含个整数的随机列表,对偶数索引进行降序排列,奇数索引的元素不变

 lst=random.choices(range(1,100),k=20)
 print("随机生成20个1~100的数字:\n",lst)
 list_one=lst[: : 2]
 list_tow=sorted(list_one,reverse=True)
 print(f"列表中偶数索引元素为{list_one}偶数降序排列为{list_tow}")

随机生成 20 个 1~100 的数字:
[34, 12, 64, 72, 51, 23, 43, 88, 71, 81, 38, 34, 70, 97, 47, 77, 93, 15, 95, 6]
列表中偶数索引元素为[34, 64, 51, 43, 71, 38, 70, 47, 93, 95]偶数降序排列为[95, 93, 71, 70, 64, 51, 47, 43, 38, 34]

nums=[2,7,11,15,1,8],找到列表中任意相加等于 9 的元素集合如[(0,9),(4,5)]

 nums=[2,7,11,15,1,8]
 lst=[(i,j)for i in nums for j in nums if i+j==9]
 print("找到的组合为",lst)

找到的组合为 [(2, 7), (7, 2), (1, 8), (8, 1)]

序列

编写程序,将用户输入的数字转换成相应的中文大写数字。例如,1.23 转换为壹点贰叁。

 def f(num):
     chinese = {0: '零',1: '壹',2: '贰',3: '叁',4: '肆',5: '伍',6: '陆',7: '柒',8: '捌',9: '玖' }
     num_str = str(num)
     int_chinese = ''
     for i in num_str if '.' not in num_str else num_str.split('.')[0]:
         int_chinese += chinese[int(i)]
     decimal_chinese = ''
     if '.' in num_str:
         for i in num_str.split('.')[1]:
             decimal_chinese += chinese[int(i)]
     return '{}{}'.format(int_chinese, decimal_chinese) if decimal_chinese else int_chinese
 input_num = float(input("请输入一个数字:"))
 print(f(input_num))

请输入一个数字:100.918
壹零零点玖壹捌

编写程序,随机生成 5 个 0~10 之间不相等的数。

 num_list = []
 num = random.randint(0, 10)
 num_list.append(num)
 while len(num_list) < 5:
     num = random.randint(0, 10)
     for i in num_list:
         if i == num:
             tag = 1
         else:
             tag = 0
     if tag == 0:
         num_list.append(num)
 print(num_list)

[10, 6, 2, 9, 1]

随机生成 6 位的验证码,验证码是小写字母、大写字母、数字三种类型中的一种。【数字 09;小写字母 az 的 ASCII 是 9797+25;大写字母 AZ 的 ASCII 是 65~65+25】

 num = [i for i in range(48,58)]
 s_str = [i for i in range(97, 97 + 26)]
 m_str = [i for i in range(65, 65 + 26)]
 list = []
 list.extend(num)
 list.extend(s_str)
 list.extend(m_str)
 for i in range(0, 6):
     check = random.choices(list)
      print(check,end='')
     print(chr(check[0]),end='')

b1AQtc

创建一个 20 以内奇数列表,计算列表中所有数的和。Sum(Range(1,20,2))

 sum = sum(range(1,20,2))
 print(sum)

100

输入一个字符串和一个字符,计算字符在字符串的出现的次数。 Count()

 str = input("请输入一字符串:")
 for i in str:
     print(i, ':', str.count(i))

请输入一字符串:sdxsaxs
s : 3
d : 1
x : 2
s : 3
a : 1
x : 2
s : 3

将下面表格中的数据按成绩从高到低进行排序,输出排序结果。输出结果如下图所示。
姓名 成绩
吴忱 76
杨九莲 99
安芸芸 84
刘洋 70
兰成 89

 data = [
     {"姓名": "吴忱", "成绩": 76},
     {"姓名": "杨九莲", "成绩": 99},
     {"姓名": "安芸芸", "成绩": 84},
     {"姓名": "刘洋", "成绩": 70},
     {"姓名": "兰成", "成绩": 89}
 ]
 sorted_data = sorted(data, key=lambda item: item['成绩'], reverse=True)
 print("排名\t姓名\t成绩")
 for index, item in enumerate(sorted_data, start=1):
     print(f"{index}\t{item['姓名']}\t{item['成绩']}")

排名 姓名 成绩
1 杨九莲 99
2 兰成 89
3 安芸芸 84
4 吴忱 76

随机生成 1000 个由 0、1 组成的字符串,统计 0、1 的个数。

nums=random.choices(range(2),k=1000)
for i in nums:
 if i==0:
     lst1=nums.count(i)
for j in nums:
 if j==1:
     lst2=nums.count(j)
print(f"0字符在字符串中一共出现了{lst1}次")
print(f"1字符在字符串中一共出现了{lst2}次")

0 字符在字符串中一共出现了 479 次
1 字符在字符串中一共出现了 521 次

输入 5 个数,将其分别按从小到大,从大到小的顺序输出。
接收用户输入的 5 个数

numbers = []
for i in range(5):
 num = float(input(f"请输入第{i + 1}个数: "))
 numbers.append(num)
# 按从小到大排序
sorted_asc = sorted(numbers)
print("从小到大排序:", sorted_asc)
# 按从大到小排序
sorted_desc = sorted(numbers, reverse=True)
print("从大到小排序:", sorted_desc)

请输入第 1 个数: 110.23
请输入第 2 个数: 23.89
请输入第 3 个数: 349.678
请输入第 4 个数: 23.101
请输入第 5 个数: 1999.99
从小到大排序: [23.101, 23.89, 110.23, 349.678, 1999.99]
从大到小排序: [1999.99, 349.678, 110.23, 23.89, 23.101]

有两个集合,集合 A 为{1,2,3,4,5},集合 B 为{4,5,6,7,8},计算这两个集合的并集 |、交集&、差集-和对称差集 ^。从键盘输入一个数据,判断其是否在集合 A 或集合 B 中。
A={1,2,3,4,5}
B={4,5,6,7,8}
print("集合A:{1,2,3,4,5}\n集合B:{4,5,6,7,8}")
lst1=A|B
lst2=A&B
lst3=A-B
lst4=A^B
print("这两个集合的并集为:",lst1)
print("这两个集合的交集为:",lst2)
print("这两个集合的差集为:",lst3)
print("这两个集合的对称差集为:",lst4)
n=int(input("请输入一个数:"))
if n in A and n in B:
 print(f"输入的数{n}即在集合A也在集合B中")
elif n in A or n in B:
 print(f"输入的{n}数在集合A或集合B中")
else:
 print(f"输入的数{n}不在集合A和集合B中")

集合 A:{1, 2, 3, 4, 5}
集合 B:{4, 5, 6, 7, 8}
这两个集合的并集为: {1, 2, 3, 4, 5, 6, 7, 8}
这两个集合的交集为: {4, 5}
这两个集合的差集为: {1, 2, 3}
这两个集合的对称差集为: {1, 2, 3, 6, 7, 8}
请输入一个数:0
输入的数 0 不在集合 A 和集合 B 中

输入一个字符串和一个字符,计算字符在字符串中出现的次数。

str = input('输入字符串:')
i= input('输入统计的字符')
print(i,'在',str,'中出现:',str.count(i),'次。')

输入字符串:hello world
输入统计的字符 l
l 在 hello world 中出现: 3 次。

对 zip 对象结果进行序列解包,并循环遍历;对 enumerate 对象结果进行序列解包,并循环遍历。

lst1=random.choices(range(101),k=10)
lst2=random.choices(range(50,101),k=10)
print(f"随机生成10个0~100的列表{lst1}\n随机生成10个50~100的列表{lst2}")
lst=zip(lst1,lst2)
for i,j in lst:
    print("循环遍历:",i,j)

lst3=random.choices(range(100,1001),k=10)
print("随机生成10个100~1000的列表为:\n",lst3)
lst4=enumerate(lst3)
for x,y in lst4:
    print("解包并循环遍历",x,y)

随机生成 10 个 0100 的列表[75, 70, 4, 67, 16, 51, 62, 28, 90, 2]随机生成 10 个 50100 的列表[71, 70, 89, 80, 72, 84, 51, 68, 52, 90]
循环遍历: 75 71
循环遍历: 70 70
循环遍历: 4 89
循环遍历: 67 80
循环遍历: 16 72
循环遍历: 51 84
循环遍历: 62 51
循环遍历: 28 68
循环遍历: 90 52
循环遍历: 2 90
随机生成 10 个 100~1000 的列表为:
[110, 573, 285, 513, 270, 798, 748, 901, 312, 895]
解包并循环遍历 0 110
解包并循环遍历 1 573
解包并循环遍历 2 285
解包并循环遍历 3 513
解包并循环遍历 4 270
解包并循环遍历 5 798
解包并循环遍历 6 748
解包并循环遍历 7 901
解包并循环遍历 8 312
解包并循环遍历 9 895

随机生成 20 个数字的列表,保留奇数列表。filter

lst=random.choices(range(101),k=20)
print("随机生成20个数字的列表为:\n",lst)
def f(n):
 return n%2==1
lst1=filter(f,lst)
print("其中的奇数列表为:",list(lst1))

随机生成 20 个数字的列表为:
[86, 31, 46, 43, 41, 64, 96, 61, 62, 28, 53, 32, 89, 97, 82, 77, 75, 20, 54, 29]
其中的奇数列表为: [31, 43, 41, 61, 53, 89, 97, 77, 75, 29]

输入一些数字,作为元组的元素,查找最后一个数字在元组中出现多少次?

tup = input("请输入一些数字:")
print(f"最后一个元素{tup[-1]}出现次数是{tup.count(tup[-1])}")

请输入一些数字:867843697234857435098707887
最后一个元素 7 出现次数是 6

输入一些数字,作为元组的元素,在元组中随机确定一个数字,查找这个数字首次出现的位置。

tup = input("请输入一些数字:")
n = input("请输入一个数字:")
print(f"你输入的这个数字{n}在这些数字中首次出现的位置是第{tup.index(n)}个位置")

请输入一些数字:5376560874643
请输入一个数字:7
你输入的这个数字 7 在这些数字中首次出现的位置是第 2 个位置

随机生成 10 个小写字母,随机生成 10 个大写字母。

lst = random.sample(string.ascii_lowercase, 10)
print("随机生成的小写字母:", lst)
LST= random.sample(string.ascii_uppercase, 10)
print("随机生成的大写字母:", LST)

随机生成的小写字母: ['z', 'v', 'x', 'u', 'e', 'r', 'n', 'a', 'm', 't']
随机生成的大写字母: ['J', 'T', 'K', 'N', 'W', 'G', 'M', 'Y', 'O', 'U']

创建一个 20 以内奇数列表,计算列表中所有数的和。

lst=random.choices(range(21),k=30)
print("随机生成30个20以内的数字列表为:",lst)
lst1=[]
for i in lst:
 if i%2==1:
     lst1.append(i)
print("所有数的和为:",sum(lst1))

随机生成 30 个 20 以内的数字列表为: [12, 9, 1, 16, 2, 20, 9, 3, 16, 5, 15, 1, 14, 4, 13, 6, 9, 2, 19, 8, 9, 1, 0, 15, 0, 7, 4, 5, 14, 13]
所有数的和为: 134

设计一个函数,接受一组数据,分别计算最大值和最小值。

n=input("请输入一些数:")
print("这些数中最大的为:",max(n))
print("这些数中最小的为:",min(n))

请输入一些数:80875098314875
这些数中最大的为: 9
这些数中最小的为: 0

统计一篇英文文章的词频。

 import requests
 from collections import Counter
 import re
 url = 'http://en.people.cn/'
 response = requests.get(url)
 text = response.text
 text = text.lower()
 text = re.sub(r'[^\w\s]', '', text)
 words = text.split()
 stopwords = set(['the', 'and', 'a', 'an', 'in', 'on', 'is', 'are', 'was', 'were', 'am', 'i', 'you', 'he', 'she', 'it', 'we', 'they', 'me', 'him', 'her', 'us', 'them', 'my', 'your', 'his', 'her', 'its', 'our', 'their', 'mine', 'yours', 'his', 'hers', 'ours', 'theirs'])
 words = [word for word in words if word not in stopwords]
 word_counts = Counter(words)
 for word, count in word_counts.most_common():
     print(f"{word}: {count}")

随机生成 1000 个由大小写英文字母构成的字符串,分别统计每个字符的个数。

import random
from collections import Counter
strings = [''.join(random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', k=10)) for _ in range(1000)]
char_counts = Counter(''.join(strings))
for char, count in char_counts.items():
print(f"{char}: {count}")

L: 186,n: 191,z: 202,O: 167,u: 183,h: 192,N: 165,J: 175,p: 229,r: 190,k: 180,M: 191,g: 204,o: 192,Z: 190,c: 202,A: 172,V: 180,y: 207,X: 217,l: 197,G: 205,H: 183,Y: 207,s: 203,x: 195,a: 161,K: 184,C: 172,D: 202,U: 184,w: 178,E: 182,P: 184,m: 190,B: 189,d: 184,v: 171,i: 208,f: 197,S: 212,t: 177,e: 193,I: 206,Q: 214,R: 223,W: 192,j: 194,T: 204,q: 202,b: 200,F: 192,

已知列表 data 中有若干字符串,要求编写程序,对 data 中的字符串进行过滤,只输出重复字符不超过一半的字符串。

 from collections import Counter
 data = ['hello', 'world', 'python', 'programming', 'code', 'example', 'test', 'hello world']
 def f(data):
     lst= []
     for i in data:
         char_counts = Counter(i)
         half_length = len(i) // 2
         excess_chars = sum(1 for count in char_counts.values() if count > half_length)
         if excess_chars <= half_length:
             lst.append(i)
     return lst
 lst_data = f(data)
 for s in lst_data:
     print(s)

编写程序,生成包含 1000 个[0,100]的随机整数,并统计每个元素的出现次数。

 nums=random.choices(range(101),k=1000)
 print("生成1000个[0,100]的随机整数:",nums)
 dct={i:0 for i in range(101)}
 for i in nums:
     dct[i]+=1
 for num,count in dct.items():
     print(f"数字{num}:        出现      {count}次")

数字 0: 出现 11 次
数字 1: 出现 18 次
数字 2: 出现 6 次
数字 3: 出现 9 次
数字 4: 出现 13 次
......

编写程序,用户输入一个列表和 2 个整数作为下标,然后输出列表中介于 2 个下标闭区间之间的元素组成的子列表。例如用户输入[1,2,3,4,5,6]和 2,5,程序输出[3,4,5,6]。

 lst= eval(input("请输入一个列表:"))
 start_index = int(input("请输入起始下标:"))
 end_index = int(input("请输入结束下标:"))
 if start_index < 0 or end_index < 0 or start_index >= len(lst) or end_index >= len(lst) or start_index > end_index:
     print("无效的下标!")
 else:
     print("介于两个下标之间的子列表为:",lst[start_index:end_index+1])

请输入一个列表:1212,21,2,12,12,2,2,12,12,1,2,33
请输入起始下标:2
请输入结束下标:7
介于两个下标之间的子列表为: (2, 12, 12, 2, 2, 12)

设计一个字典,并编写程序,用户输入内容作为“键”,然后输出字典对应的“值”,如果用户输入的“键”不存在,则输出“您输入的键不存在!”

 dct = { "苹果": "apple", "香蕉": "banana","橙子": "orange","葡萄": "grape","西瓜": "watermelon"}
 name= input("请输入一个水果名称:")
 if name in dct:
     print(dct[name])
 else:
     print("您输入的键不存在!")

请输入一个水果名称:苹果
apple

编写程序,生成包含 20 个随机数的列表,然后将前 10 个元素升序排列,后 10 个元素降序排列,并输出结果。

 nums=random.choices(range(101),k=20)
 print("生成20个随机整数:",nums)
 lst1=nums[0:10]
 lst2=nums[10:21]
 print(f"将前10个元素升序排列{sorted(lst1)}\n将后10个元素降序排列{sorted(lst2,reverse=True)}")

生成 20 个随机整数: [22, 48, 60, 74, 2, 49, 15, 67, 10, 97, 19, 66, 37, 75, 25, 8, 22, 32, 16, 50]
将前 10 个元素升序排列[2, 10, 15, 22, 48, 49, 60, 67, 74, 97]
将后 10 个元素降序排列[75, 66, 50, 37, 32, 25, 22, 19, 16, 8]

编写程序,输入一个字符串,输出其中出现次数最多的字符及其出现次数。

 lst_str = input("请输入一串字符串:")
 dct = {}
 for char in lst_str:
     if char in dct:
         dct[char] += 1
     else:
         dct[char] = 1
 max_char = max(dct, key=dct.get)
 max_count = dct[max_char]
 print(f"出现次数最多的字符是{max_char}    出现{max_count}次")

请输入一串字符串:rtewrtry
出现次数最多的字符是 r 出现 3 次

使用字典推导式生成字典,字典的键是所有的英文字母,值是对应的 ASCII 码。

 d1={}
 for i in range(26):
        d1[chr(i+65)]=i+65
 for i in range(26):
        d1[chr(i+97)]=i+97
 print(d1)
> {'A': 65, 'B': 66, 'C': 67, 'D': 68, 'E': 69, 'F': 70, 'G': 71, 'H': 72, 'I': 73, 'J': 74, 'K': 75, 'L': 76, 'M': 77, 'N': 78, 'O': 79, 'P': 80, 'Q': 81, 'R': 82, 'S': 83, 'T': 84, 'U': 85, 'V': 86, 'W': 87, 'X': 88, 'Y': 89, 'Z': 90, 'a': 97, 'b': 98, 'c': 99, 'd': 100, 'e': 101, 'f': 102, 'g': 103, 'h': 104, 'i': 105, 'j': 106, 'k': 107, 'l': 108, 'm': 109, 'n': 110, 'o': 111, 'p': 112, 'q': 113, 'r': 114, 's': 115, 't': 116, 'u': 117, 'v': 118, 'w': 119, 'x': 120, 'y': 121, 'z': 122}

生成从某个字母开始的 n 个元素构成的字典。如 l 开始的 5 个。

 star = input("请输入开始的字母:")
 n = int(input("几个元素"))
 star_ascll = ord(star)
 d1={}
 print(star_ascll)
 for i in range(n):
        d1[chr(star_ascll)]=0
        star_ascll+=1
 print(d1)
> 请输入开始的字母:t
> 几个元素 7
> 116
> {'t': 0, 'u': 0, 'v': 0, 'w': 0, 'x': 0, 'y': 0, 'z': 0}

编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能400整除,则为间年:如果年份能被4整除但不能被100整除也为年。

number = int(input("请输入数四位数:"))
if number % 4 == 0 and number % 100 != 0 or number % 400 == 0:
    print("Yes,闰年")
else:
    print("No,平年")

请输入数四位数:3000
No,平年
请输入数四位数:2000
Yes,闰年

编写程序,生成一个包含50个随机整数的列表,然后删除其中所有奇数(提示:从后向前删)。

integers = [random.randint(1, 100) for _ in range(50)]
print(integers)
# 方法一列表推导式
evenList = [x for x in integers if x % 2 != 1]
print(evenList)
# 方法二使用filter
evenList = list(filter(lambda x: x % 2 != 1, integers))
print(evenList)

#[41, 10, 79, 50, 86, 50, 79, 28, 68, 54, 30, 100, 20, 80, 56, 40, 20, 50, 49, 28, 17, 52, 31, 6, 99, 31, 56, 9, 33, 21, 87, 40, 88, 87, 31, 55, 95, 3, 9, 13, 60, 97, 24, 38, 44, 97, 3, 3, 23, 48]
#[10, 50, 86, 50, 28, 68, 54, 30, 100, 20, 80, 56, 40, 20, 50, 28, 52, 6, 56, 40, 88, 60, 24, 38, 44, 48]

编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变(提示:使用切片)。

integersList = [random.randint(1, 100) for _ in range(20)]
print(integersList)
evenList = integersList[::2]
print(evenList)
evenList.pop(0)  # 下标0不是奇数也不是偶数删除
print(evenList)
evenList.sort(reverse=True)
print(evenList)
needOne = 2
needTow = 0
while needOne < len(integersList):
    integersList[needOne] = evenList[needTow]
    needOne += 2
    needTow += 1
print(integersList)

#[11, 17, 79, 49, 28, 17, 66, 2, 9, 92, 71, 53, 80, 27, 14, 5, 55, 12, 36, 45]
#[11, 79, 28, 66, 9, 71, 80, 14, 55, 36]
#[79, 28, 66, 9, 71, 80, 14, 55, 36]
#[80, 79, 71, 66, 55, 36, 28, 14, 9]
#[11, 17, 80, 49, 79, 17, 71, 2, 66, 92, 55, 53, 36, 27, 28, 5, 14, 12, 9, 45]

编写程序,用户从键盘输入小于1000的整数,对其进行因式分解。例如10=25,60=2235

def zys(n):
    print(n, "=", end='')
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            print(i, end='')
            n //= i
            if n > 1:
                print("*", end='')
    if n > 1:
        print(n, end="")
n = int(input("请输入正整数:"))
zys(n)

请输入正整数:60
60 =223*5

编写程序,至少使用两种不同的方法计算100以内所有奇数的和。

numberList = list(range(0, 101))
print(numberList)
# 方法一使用函数
numberList=numberList[1::2]
print(numberList)
numberSum = sum(numberList)
print(numberSum)
# 方法二直接循环累加
numberSumOne = 0
for i in numberList:
    numberSumOne += i
print(numberSumOne)

#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
#[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
#2500
#2500

编写程序,输出所有由1、2、3、4这四个数字组成的素数,并且在每个素数中每个数字只使用一次。

import itertools
numbers = [1, 2, 3, 4]
for r in range(1, len(numbers) + 1):  # r表示排列中元素的个数
    permutations = itertools.permutations(numbers, r)  # 生成所有r个元素的排列
    for perm in permutations:
        perm = int(''.join(map(str, perm)))
        print(perm,end=',')  # 输出排列
#1, 2, 3, 4, 12, 13, 14, 21, 23, 24, 31, 32, 34, 41, 42, 43, 123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432, 1234, 1243, 1324, 1342, 1423, 1432, 2134, 2143, 2314, 2341, 2413, 2431, 3124, 3142, 3214, 3241, 3412, 3421, 4123, 4132, 4213, 4231, 4312, 4321,

编写程序,实现分段函数计算:
X y
X<0 0
0<=x<5 x
5<=x<10 3x-5
10<=x<20 0.5x-2
20<=x 0

x = int(input("请输入x:"))
if x < 0:
    y = 0
elif 0 <= x < 5:
    y = x
elif 5 <= x < 10:
    y = 3 * x - 5
elif 10 <= x < 20:
    y = 0.5 * x - 2
else:
    y = 0
print("y=", y)

请输入x:8
y= 19

输出3位水仙花数。

def flowerSum(num):
    numStr = str(num)
    n = len(numStr)  #数值长度
    sum_of_powers = sum(int(digit)** n for digit in numStr)  #转换为字符串求和
    return sum_of_powers == num
for num in range(100,1001):
    if flowerSum(num):
        print(num)

153
370
371
407

统计考试中优秀、良好、中等、及格、不及格的人数。

score_list = [random.randint(1, 100) for _ in range(100)]
Y = 0
L = 0
Z = 0
J = 0
N = 0
for i in score_list:
    if i >= 90:
        Y += 1
    elif 80 <= i < 90:
        L += 1
    elif 70 <= i < 80:
        Z += 1
    elif 60 <= i < 70:
        J += 1
    else:
        N += 1
print("优秀:", Y, "良好:", L, "中等:", Z, "及格:", J, "不及格:", N, )

优秀: 14 良好: 10 中等: 7 及格: 9 不及格: 60

输入一个数,判断是否为素数。

def price(i):
    if i < 2:
        return False
    else:
        for j in range(2, int(math.sqrt(i)) + 1):
            if i % j == 0:
                return False
        return True

num = int(input("请输入一个数:"))
if price(num):
    print("是素数")
else:
    print("不是素数")

计算前n个自然数的阶乘之和1!+2!+3!+……+n!

num = int(input("请输入一个数:"))
num_list = [i for i in range(1, num + 1)]
print(num_list)
sum = 0
for i in num_list:
    k = 1
    for j in range(1, i + 1):
        k *= j
    sum += k
print("阶乘和为:", sum)

请输入一个数:5
[1, 2, 3, 4, 5]
阶乘和为: 153

方法二

num = int(input("请输入一个数:"))
num_list = [i for i in range(1, num + 1)]
print(num_list)
sum = 0
for i in num_list:
    k=math.factorial(i)
    sum += k
print("阶乘和为:", sum)

请输入一个数:4
[1, 2, 3, 4]
阶乘和为: 33

e=1+1/1! + 1/2! + 1/3! + …… +1/n!,编写程序计算e的近似值。要求直到最后一项值小于10-8(表示为10e-8)输出最后一项的值及e的值。(提示:阶乘可用math库的

math.factorial(x)求)
e = 1
i=1
while i > 0:
    k=1/(math.factorial(i))
    if k <pow(10,-8):
         break
    e += k
    i+=1
print("e为:", e)

e为: 2.718281826198493

1,2,3,5,8,13,21,34……,观察前面的数字,生成前100个数字组成的序列。

denominator = 1
molecule = 2
molecule_one =1
i = 0
while molecule_one<100:
    print(molecule_one, end=',')
    molecule_one = molecule + denominator
    denominator_one = molecule
    molecule, denominator = molecule_one, denominator_one

1,3,5,8,13,21,34,55,89,......

输出9x9的乘法表

for i in range(1, 10):
    for j in range(1, i + 1):
        print("{}x{}={}\t".format(j, i, i * j), end="")
    print()

#1x1=1
#1x2=2	2x2=4
#1x3=3	2x3=6	3x3=9
#1x4=4	2x4=8	3x4=12	4x4=16
#1x5=5	2x5=10	3x5=15	4x5=20	5x5=25
#1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36
#1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49
#1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64
#1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81

输入若干同学的计算机成绩,成绩分布在[0,100]区间,求出这些同学的计算机成绩的平均值、最小值、最大值。每次提示是否继续输入,输入yes,继续输入,输入no停止输入。输入在数字不在[0,100]区间,给出错误提示。

def panduan():
    judges = True
    while judges:
        index = input("是否继续输入:")
        if index == "yes" or index == "Y" or index == "y":
            judges = False
            return True
        elif index == "no" or index == "N" or index == "n":
            judges = False
            return False
        else:
            print("输入错误!")

def jisuan(score_list):
    aver = sum(score_list) / len(score_list)
    mins = min(score_list)
    maxs = max(score_list)
    return aver, mins, maxs

def inputscore():
    judge = True
    while judge:
        score = int(input("请输入数字:"))
        if 0 <= score <= 100:
            score_list.append(score)
            print(score_list)
            tag = panduan()
            if tag:
                judge = True
            else:
                return score_list
                judge = False
        else:
            print("格式错误!")

score_list = []
score_list = inputscore()
aver, mins, maxs = jisuan(score_list)
print(f"平均成绩:{aver}")
print(f"最低成绩:{mins}")
print(f"最高成绩:{maxs}")

请输入数字:67
[67]
是否继续输入:89
输入错误!
是否继续输入:y
请输入数字:56
[67, 56]
是否继续输入:y
请输入数字:45
[67, 56, 45]
是否继续输入:78
输入错误!
是否继续输入:y
请输入数字:23
[67, 56, 45, 23]
是否继续输入:yes
请输入数字:67
[67, 56, 45, 23, 67]
是否继续输入:n
平均成绩:51.6
最低成绩:23
最高成绩:67

猜数游戏:游戏开始,随机生成一个[0,100]区间的数字,用户输入一个数字猜测,如果用户输入大了,提示“大了”,如果用户输入小了,提示“小了”,最终计算并输出用户猜了多少次。

number = random.randint(0, 100)
print(number)
sum = 0
i = 1
while i < 10:
    x1 = eval(input("输入:"))
    if x1 < number:
        print("猜小!")
        continue
    elif x1 > number:
        print("大了")
        continue
    else:
        print("猜对了")
        break
    sum = sum+1

输出1000以内的素数,以及这些素数之和。(素数,是指除了1和该数本身之外,不能被其他任何整数整除的数)

def price(i):
    if i < 2:
        return False
    else:
        for j in range(2, int(math.sqrt(i)) + 1):
            if i % j == 0:
                return False
        return True

sum = 0
for i in range(1, 1000):
    if price(i):
        sum += i
print("素数和:", sum)

素数和: 76127

编写程序,按公式s=12+22+32+……+n2。求累加和s不超过1000的最大项数n。

index = 12
sum = 0
tag = True
while tag:
    sum += index
    index += 10
    if sum > 1000:
        print("最大项为:", index - 20)
        sum = sum - (index - 10)
        print("最大值:",sum)
        tag = False

最大项为: 132
最大值: 936

编写程序,将由1、2、3、4这4个数字组成的每位数都不相同的所有三位数,存入列表中。

import itertools
numbers = [1, 2, 3, 4]
permutations = itertools.permutations(numbers, 3)  # 生成所有r个元素的排列
print(list(int(''.join(map(str, perm))) for perm in permutations))

[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314,
321, 324, 341, 342, 412, 413, 421, 423, 431, 432]

百钱买百鸡。 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,
用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,
问公鸡、母鸡、小鸡分别要买多少只刚好凑足100文钱。
初始化变量

for x in range(1, 20):
    for y in range(1, 33):
        z = 100 - x - y
        if z % 3 == 0 and 5*x + 3*y + z/3 == 100:
            print(f"公鸡: {x} 只,母鸡: {y} 只,小鸡: {int(z)} 只,刚好100文钱。")
            break

公鸡: 4 只,母鸡: 18 只,小鸡: 78 只,刚好100文钱。
公鸡: 8 只,母鸡: 11 只,小鸡: 81 只,刚好100文钱。
公鸡: 12 只,母鸡: 4 只,小鸡: 84 只,刚好100文钱。

编写一个求整数n阶乘(n!)的程序。

def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n - 1)
n = int(input("请输入一个整数:"))
print(f"{n}的阶乘是:{factorial(n)}")

输入一个字符串,然后依次显示该字符串的每个字符,以及该字符的ASCII码。

str = input("请输入字符串:")
for i in str:
    print(i,":",ord(i))

d : 100
f : 102
j : 106
s : 115
n : 110
d : 100
f : 102
j : 106
n : 110
s : 115

数字重复统计问题。(1)随机生成1000个整数,数字的范围[20,100];
(2)升序输出所有不同的数字,及其每个数字重复的次数。

lists = [random.randint(20, 100) for _ in range(1000)]
cf = dict([[i,lists.count(i)] for i in lists ])
sorted_dict = dict(sorted(cf.items()))
print(sorted_dict)
#{20: 8, 21: 15, 22: 14, 23: 19, 24: 9, 25: 9, 26: 8, 27: 11, 28: 18, 29: 15, 30: 15, 31: 9, 32: 13, 33: 14, 34: 12, 35: 11, 36: 11, 37: 11, 38: 10, 39: 14, 40: 10, 41: 14, 42: 17, 43: 13, 44: 13, 45: 11, 46: 15, 47: 19, 48: 9, 49: 10, 50: 9, 51: 14, 52: 22, 53: 13, 54: 17, 55: 16, 56: 11, 57: 10, 58: 13, 59: 16, 60: 5, 61: 7, 62: 11, 63: 16, 64: 13, 65: 9, 66: 9, 67: 12, 68: 15, 69: 13, 70: 13, 71: 13, 72: 12, 73: 13, 74: 12, 75: 7, 76: 17, 77: 8, 78: 15, 79: 8, 80: 12, 81: 16, 82: 8, 83: 12, 84: 13, 85: 11, 86: 17, 87: 14, 88: 13, 89: 13, 90: 10, 91: 9, 92: 14, 93: 8, 94: 15, 95: 22, 96: 8, 97: 8, 98: 18, 99: 11, 100: 2}

编写一个判断字符串是否是回文数。回文就是一个字符串从左到右读和从右到左读是完全一样的。例如,level,12321,ABA是回文。

number_list = input("请输入:")
index_first = 0
i = 0
tag = 0
index_last = int(len(number_list))
while i < int(len(number_list) / 2):
    if number_list[index_first] == number_list[index_last - 1]:
        index_first += 1
        index_last -= 1
        i += 1
        tag = 1
    else:
        print("不是回文")
        break
if tag == 1:
    print("是回文")

请输入:asdfghgfdsa
是回文

编写程序,求满足以下条件的最大的n值:

12+22+32+42+……+n2<1000
index = 12
sum = 0
tag = True
while tag:
    sum += index
    index += 10
    if sum > 1000:
        print("最大项为:", index - 20)
        sum = sum - (index - 10)
        print("最大值:",sum)
        tag = False

最大项为: 132
最大值: 936

输入星号金字塔,要求打印n层。

n = int(input("金字塔高度:"))
for i in range(1, n+1):
    for j in range(0, n-i):
        print(" ", end="")
    for k in range(1, 2*i):
        print("*", end="")
    print()

#金字塔高度:7
#        *
#       ***
#      *****
#     *******
#    *********
#   ***********
#  *************

编写程序打印下图的字符金字塔,要求打印n层。
A
BAB
CBABC
DCBABCD
EDCBABCDE
FEDCBABCDEF
GFEDCBABCDEFG

def print_char_pyramid(n):
    # 外层循环控制行数
    for i in range(n):
        # 打印空格 每增加一层,空格数量-1
        print(' ' * (n - i - 1), end='')
        # 打印左侧字母,从A开始
        for j in range(i):
            print(chr(65 + i - j), end='')
        # 打印右侧字母,从倒数第二个开始
        for j in range(i + 1):
            print(chr(65 + j), end='')
            # 换行
        print()

n = int(input("请输入金字塔的层数:"))
print_char_pyramid(n)

#请输入金字塔的层数:4
#    A
#   BAB
#  CBABC
# DCBABCD

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

import itertools
numbers = [1, 2, 3, 4]
permutations = itertools.permutations(numbers, 4)  # 生成所有r个元素的排列
print(list(int(''.join(map(str, perm))) for perm in permutations))
#[123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]

判断101-200之间有多少个素数,并输出所有素数。

def price(i):
    if i < 2:
        return False
    else:
        for j in range(2, int(math.sqrt(i)) + 1):
            if i % j == 0:
                return False
        return True

su = []
number = 0
for j in range(101, 201):
    k = price(j)
    if k == True:
        su.append(j)
        number += 1
print("数量:", number, "是:", su)

#数量: 21 是: [101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]

将一个正整数分解质因数。例如:输入90,打印出90=233*5。

def zys(n):
    print(n, "=", end='')
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            print(i, end='')
            n //= i
            if n > 1:
                print("*", end='')
    if n > 1:
        print(n, end="")
n = int(input("请输入正整数:"))
zys(n)

请输入正整数:90
90 =233*5

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

def count_chars(input_string):
    # 初始化计数器
    letters = 0
    spaces = 0
    digits = 0
    others = 0

    # 遍历字符串中的每个字符
    for char in input_string:
        # 检查字符是否是英文字母
        if char.isalpha():
            letters += 1
            # 检查字符是否是空格
        elif char.isspace():
            spaces += 1
            # 检查字符是否是数字
        elif char.isdigit():
            digits += 1
            # 如果都不是,则属于其他字符
        else:
            others += 1
    return letters, spaces, digits, others
input_line = input("请输入一行字符:")
letters, spaces, digits, others = count_chars(input_line)
print(f"英文字母个数:{letters}")
print(f"空格个数:{spaces}")
print(f"数字个数:{digits}")
print(f"其他字符个数:{others}")

请输入一行字符:1234567!@#$%^SDFG FGHJ45678HGF//.,;'[]
英文字母个数:11
空格个数:2
数字个数:12
其他字符个数:15

求1+2!+3!+...+20!的和。

num_list = [i for i in range(1, 21)]
print(num_list)
sum = 0
for i in num_list:
    k = 1
    for j in range(1, i + 1):
        k *= j
    sum += k
print("阶乘和为:", sum)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,20]
阶乘和为: 2561327494111820313

方法二

num_list = [i for i in range(1, 21)]
print(num_list)
sum = 0
for i in num_list:
    k=math.factorial(i)
    sum += k
print("阶乘和为:", sum)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,20]
阶乘和为: 2561327494111820313

一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

number_list = input("请输入:")
index_first = 0
i = 0
tag = 0
index_last = int(len(number_list))
while i < int(len(number_list) / 2):
    if number_list[index_first] == number_list[index_last - 1]:
        index_first += 1
        index_last -= 1
        i += 1
        tag = 1
    else:
        print("不是回文")
        break
if tag == 1:
    print("是回文")

请输入:45678987654
是回文

编程实现:定义一个类(Person),该类中有两个私有属性分别为姓名(name)和年龄(age)。
定义构造方法,用于初始化数据成员。定义显示(display)方法,将姓名和年龄显示输出。

class Person:
     def __init__(self, name, age):
         self.__age = age
         self.__name = name

     def display(self):
         print(self.__age, self.__name)


 student = Person('a', '18')
 student.display()

18 a

设计一个学生类,属性为姓名、学号、年龄、成绩。设计一个班级类,属性为班级代号、所有学生
要求:实现向班级添加学生、删除学生、学生排序(按指定条件)、查询学生信息(姓名、学号等)。

 class student:
     def __init__(self, name, id, age, score):
         self.name = name
         self.id = id
         self.age = age
         self.score = score

 class classroom:
     def __init__(self, class_id):
         self.class_id = class_id
         self.student_list = []

     def add_stu(self, student):   添加学生
         self.student_list.append(student)

     def del_stu(self, stu_id):
         for student in self.student_list:
             if student.id == stu_id:
                 self.student_list.remove(student)
                 return 1
             return -1

     def sort_stu(self, key):
         self.student_list.sort(key=lambda student: getattr(student, key))

     def find_stu(self, query_value):
         for student in self.student_list:
             if student.id == query_value:
                 print('查询到学生信息:姓名:', student.name, '学号:', student.id, '年龄:', student.age, '成绩:',
                       student.score)
                 return 1
             return -1

     def out_stu(self):
         print(' 姓名 \t',  '学号\t','年龄\t','成绩\t')
         for student in self.student_list:
             print(student.name, '\t', student.id, '\t', student.age,'\t',
                   student.score)


 stu1 = student('youze', '1', 23, 70)
 stu2 = student('lili', '2', 24, 60)
 stu3 = student('zimen', '3', 38, 62)
 stu4 = student('liling', '4', 23, 89)
 stu5 = student('san', '5', 24, 56)
 stu6 = student('wangwu', '6', 19, 99)
  创建班级对象并添加学生
 c1 = classroom('2024')
 c1.add_stu(stu1)
 c1.add_stu(stu2)
 c1.add_stu(stu3)
 c1.add_stu(stu4)
 c1.add_stu(stu5)
 c1.add_stu(stu6)

 c1.out_stu()
  删除一个学生
 print('删除:',c1.del_stu('1'))
  对学生进行排序(按成绩)
 c1.sort_stu('score')
 print('成绩排序输出:')
 c1.out_stu()
  查询学生信息
 c1.find_stu('1')

#   姓名 	 学号	 年龄	 成绩
#  youze 	 1 	 23 	 70
#  lili 	 2 	 24 	 60
#  zimen 	 3 	 38 	 62
#  liling 	 4 	 23 	 89
#  san 	 5 	 24 	 56
#  wangwu 	 6 	 19 	 99
#  删除: 1
#  成绩排序输出:
#   姓名 	 学号	 年龄	 成绩
#  san 	 5 	 24 	 56
#  lili 	 2 	 24 	 60
#  zimen 	 3 	 38 	 62
#  liling 	 4 	 23 	 89
#  wangwu 	 6 	 19 	 99

定义代表二维坐标系上某个点的 Point 类(包括x坐标和y坐标两个属性),为说类提供一个方法用于计算两个点之间的距离,再提供一个方法用于判断三个点组成的?角形是钝角、锐角还是直角三角形。

class Point:
     def __int__(self):
         self.__x=0
         self.__y=0
         self.__z=0
     def jisuan(x,y):
         return math.sqrt(math.pow(x,2)+math.pow(y,2))
     def panduan(x,y,z):
         if x+y<=z or x+z<=y or y+z<=x:
             return -1
         else:
             if math.pow(x, 2)+math.pow(y, 2)==math.pow(z, 2):
                 return 0
             elif  math.pow(x, 2)+math.pow(y, 2)<math.pow(z, 2):
                 return 1
             else:
                 return 2
 d = Point
 print(d.jisuan(3,4))
 v = d.panduan(3,4,6)
 if v==-1:
     print('不是三角形')
 elif v==1:
     print('锐角')
 else:
     print('钝角')
 4.编程实现:自定义一个字典类 dictclass,并完成下面的功能。dict = dictclass({字典对象))
 (1)删除某个 key。
 (2)判断某个键是否在字典里。如果存在,返回键对应的值;不存在,则返回"not found"
 (3)返回键组成的列表,返回类型为列表
 (4)合并字典并返回由合并后字典的值组成的列表,返回类型为列表提示:update_dict({要合并的字典))。
 class dictclass:
     def __init__(self, initial):
         self.data = initial

      删除
     def del_dict(self, key):
         if key in self.data:
             del self.data[key]
             return 1   删除成功返回1
         else:   键不存在返回0
             return 0

      查找
     def get_value(self, key):
         if key in self.data:
             return self.data[key]
         else:
             return 'not found'

      获取
     def get_key(self):
         return list(self.data.keys())

      增加
     def update_dict(self, dict1):
         self.data.update(dict1)
         return list(self.data.values())


 d = dictclass({'a': 1, 'b': 2, 'c': 3, 'd': 4})
 print(d.get_key())   返回键组成的列表
 print(d.del_dict('a'))   删除key
 print(d.get_key())   返回键组成的列表

 print(d.get_value('b'))   查找、返回键对应值

 dict1 = dictclass({'f': 7, 'g': 8, 'h': 9})
 print(d.update_dict(dict1.data))

5.定义交通工具、汽车、火车、飞机4个类,其中交通工具类有 name 属性,move(self,distance)方法,
调用该方法可显示该交通工具的名字及移动距离。汽车、火车、飞机类均为交通工具类的子类,其中汽车、火车类新增属性color,
飞机类新增属性company,每个子类都重写了 move()方法,调用时输出 name、新增属性和移动距离。
注意这些类的继承关系,为这些类提供构造器(构造方法)。

 class vehicle:
     def __init__(self,name):
         self.name=name
         def move(self,distance):
             print('使用的交通工具是:',self.name,'移动的距离是:',distance)
 class cars(vehicle):
     def __init__(self, name,color):
         super().__init__(name)
         self.color = color

     def move(self,distance):
             print('使用的交通工具是:',self.name,'移动的距离是:',distance,'颜色为:',self.color)

 class trains(vehicle):
     def __init__(self, name,color):
         super().__init__(name)
         self.color = color

     def move(self,distance):
             print('使用的交通工具是:',self.name,'移动的距离是:',distance,'颜色为:',self.color)

 class planes(vehicle):
     def __init__(self,name, company):
         super().__init__(name)
         self.company = company

     def move(self,distance):
             print('使用的交通工具是:',self.name,'移动的距离是:',distance,'公司为:',self.company)

 car = cars('宝马','蓝色')
 tra = trains('复兴号','绿色')
 pla = planes('C919','china')

 car.move(200)
 tra.move(2000)
 pla.move(8908)

使用的交通工具是: 宝马 移动的距离是: 200 颜色为: 蓝色 使用的交通工具是: 复兴号 移动的距离是: 2000 颜色为: 绿色
使用的交通工具是: C919 移动的距离是: 8908 公司为: china

def main():
    for i in range(1,10):
        for j in range(1,i+1):
            print(j,'*',i ,'=', str(i*j),' ',end='')
        print()
main()

 '''源文件使用的utf-8编码,所有字符串都是unciode,可以指定'''
/usr/bin/python3
  -*- coding: UTF-8 -*-
 coding=utf-8

 '''1、标识符
     变量、常量、函数、代码块

 '''

  不能使用数字开头,建议:驼峰命名法
 user_input = 1
 user_input2 = 12
 unserInput = 1      驼峰命名法
 User_Input1 = 2       驼峰命名法
 a= 1
 _aa = 1

  保留字,python内置的,不能作为标识符:有函数、语法或连接词
 '''
 C:\Users\root>python
 Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import keyword
 >>> keyword.kwlist
 ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
 >>>'''
 And = 1

 '''2、行缩进----代码块'''

 name = 'zhansgan'
 def userName():
     user_Name = "lisi"
     return user_Name

 print(userName())

 '''多行语句:符号\ '''
 name1 = "admin" + \
     "is" + \
     "me"

 '''注释符号:
 单行注释:
 多行注释:'''   '''
 '''


 '''4、输出函数:
    print()
     print(*objects , sep = '' ,end = '\n')
     objects:输出对象,可以多个,使用','分割
     sep    分割对象,默认是空
     end  用什么结束,默认是\n  ,可以自定义
 '''
 name2 = "张三"
 name3 = '李四'
 print(name1,name2,name3,sep='\n',end='\n')

 '''字符串格式化输出'''
 print('这是字符串:%c的值' %97)   格式化输出assic码
 print('这是字符串s:%s的值' % 'zhangsan') 格式化字符串输出
 print('1 + 1 = %d' %2) 格式化整形输出
 print('u:%u , o:%o , x:%x' % (0x27,0x27,0x27))%u 无符号整形,%o无符号8进制,%x 无符号16进制
 print('浮点float:%.3f' %3.222222)
 print('浮点float:%.11f' %3.222222) 浮点指定长度,不足的以0占位


 '''5、输入函数:
     input()
     '''
 user_Name_new = str(input("请输入您的用户名:"))
 if user_Name_new == 'admin':
     print("welcome:admin")
 else:
     print("welcome:",user_Name_new,end='\n')

 user_Age = int(input("请输入年龄:"))


 '''数据结构:
 1、列表
     列表内的值使用[],每一个数据叫一个元素,每个元素使用','隔开
 '''
 list = ['zhangsan' , 18 , 1.1225,'李四']
 print(list[0:2])    从第几位开始,取到第几个,默认是0开始(偏移量)
 print(list[1:2])
 print(list[1:1])    取出空的列表
 print(list[0:4])
 新增
 list.append("王五")
 print(list[0:5])
 删除
 del list[4:5]
 print(list[0:15])

 del list[:] 删除整个
 print(list[0:15])

'''2.字典
是一个可变容器模型,使用键值的形式存储数据,{"jian":'value'}
'''
 dict_new = {"name":'zhangsan','age':18,'sex':'man'} 键的值不能重复,每一个独一无二
 print(dict_new) 全部输出
 print(dict_new['name'],dict_new['age']) 只能访问键,不能访问值,但是可以把取出的值作为参数
 zhangsan_name = dict_new['name']    给变量赋值为键的值
 print(zhangsan_name)

 修改
 dict_new['age'] = 20
 print(dict_new['age'])
 print(dict_new)
 删除
 del dict_new['sex']
  print(dict_new['sex'])
 print(dict_new)
 清空
 dict_new.clear()
 print(dict_new)


'''3、元组
元组是一个不可变的序列,创建后就不能再修改,默认偏移量从0开始
'''
 tup = (1,2,3,4,5,6)
 tup1 = ("zhangsan","lisi","wangwu")
 tup2 = "zhangsan","lisi","wangerxiao"
 tup3 = ("zhangsan",)    如果只有一个元素,要在后面加,不然会识别成字符串

 print(tup,"\n",tup1,"\n",tup2,"\n",tup3)
 print(tup1[0],"\t",tup2[2])
 新增方法
 print(tup+tup1)     (1, 2, 3, 4, 5, 6, 'zhangsan', 'lisi', 'wangwu')
 print(tup*2)    (1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6)
 删除
 del tup1
 print(tup1)     NameError: name 'tup1' is not defined


'''4、集合
无序可变序列,使用set('')去定义个几个,里面的每一个元素都是唯一的,元素之间不能重复
'''
 ss = set("qwerty123")
 print(ss)
 print(type(ss)) 答应定义的方法
 for i in ss:
     if i == 'q':
         print(i)

 新增
 ss.add('A')
 print(ss)
 删除
 ss.remove("A")
 print(ss)
 更新
 ss.update([1,4,5,6,7,"1"])  更新后元素相同的会覆盖,注意:类型要一致才会覆盖
 print(ss)

 ss2 = set("123456QWER")
 并集
 ss3 = ss|ss2
 print(ss3)
 交集
 ss4 = ss & ss2
 print(ss4)
 print(ss.difference(ss2))   去除相同的部分,打印剩下的元素

 运算--计算
 set_number_one = set("1234567890qwertyuiopASDFGHJKL")
 set_number_two = set("1234567890+-")
 print("差运算“-”:",set_number_one - set_number_two)
 print("或运算“|”:",set_number_one | set_number_two)
 print("并运算“&”:",set_number_one & set_number_two)
 print("亦或运算“^”:",set_number_one ^ set_number_two)


'''运算符'''
 1、算术运算符:+-*% ** //
 num1 = 11
 num2 = 4
 print("+:",num1+num2)
 print("-:",num1-num2)
 print("*:",num1*num2)
 print("%取模:",num1%num2) 5/4=1.???   ==1
 print("**幂运算:",num1**num2)   5的4次方625
 print("//取整:",num1 // num2)

 2、比较运算符 : > < >= <= == != (python3已经去除:<>)
 number1 = 3
 number2 = 4
 user_Input = int(input("请输入一个整数(3):"))
 if (number1 == user_Input):
     print("值绝对等于:3")

 if (number1 != user_Input):
     print("你输入的值不是3,是:",user_Input)

 if (number1 > user_Input):
     print("大于3")

 if (number1 < user_Input):
     print("小于3")

 3.赋值运算   : = += -= *= /=  %= **=  //=
 a=1
 print(a)
 a+=1
 print(a)    a=2

 b=2
 a+=b    a+=2  a+2=4
 print(a)
 a-=1    3
 a-=b     1
 print(a)
 没有a++ a--   ===+= -=

 aa = 10
 print(aa//2)    5
 aa %= 3
 print(aa)

 aaa=10
 aaa**= 2    相当于10的2次方
 print(aaa)

 三目运算符
 num = 99 if 1>2 else 9
  if 1>2:
      num = 99
  else:
      num =9
 print(num)
 num = 99 if 1<2 else 9
 print(num)


 4、逻辑运算:逻辑非与或   true  flase
 se = 5
 me = 4
 print(se > me or me > se)   True
 print(se > me and me > se)   true  flase
 取反  not
 print(not se < me)  True


'''条件控制语句'''
 1、if单项判断  格式如下:  满足表达式,执行if
 if (表达式):
     print()
     pass
 input_numebr = int(input("input number:"))
 if input_numebr > 0 :
     print("大于0")

 if input_numebr  < 0 :
     print("小于0")

 if input_numebr  == 0 :
     print("等于0")

 双向判断
 if input_numebr > 0:
     print("双向判断:大于0")
 else:
     print("小于或等于:0")
 注意:不满足if时,会执行else下的命令;if和else的条件时相反的(相互排斥的)


 多项目判断
 if input_numebr > 0 :
     print("大于0")
 elif input_numebr < 0 :
     print("小于0")
 else:
     print("等于0")


 嵌套
 if input_numebr > 0 :
     if input_numebr == 3:
         print("大于0,且等于3")
     elif input_numebr > 3:
         print("大于3")
     else:
         print("大于0,且小于3")
 elif input_numebr < 0:
     if input_numebr < -10:
         if input_numebr > -20:
             print("您输入的值在-10和-20之间")
         else:
             print("您输入的值小于-20")
     else:
         print("您输入的值在-10和0之间")
 else:
     print("您输入的等于0")


'''循环语句
    一般是进行顺序执行,在各种控制结构中,可以允许复杂的循环执行路径;可以执行一个语句,或者多个语句

    格式:
        for  ....   in .....
        示例:
            for i in [1,2,3,4,5]:
                print(i)
'''

 word = ["zhangsan","lisi","wangwu","jick"]
 for lin in word:
     print("name:",lin)

 for num in range(2,10):
      print(num)
     for n in range(2,num):
         if num%n == 0:
             print("被整除的值:",num,n)
             break   跳出循环

 for num in range(2,10):
      print(num)
     for n in range(2,num):
         if num%n == 0:
             print("被整除的值:",num,n)
             continue    终止当前循环,继续先一个循环


'''while循环
    在条件为真时循环执行代码块的内容

    死循环:条件为真,会一直循环;注意:在写的过程中,要注意条件能够出现为假的情况
格式:
    while 条件:
        语句

'''
num = 0

while num < 5:   当条件为真时,会循环执行到条件为假为止
    print("当前num的值:", num)
    num += 1
    print(f"第{num}次循环")

 for循环和while循环的区别:
 1、for循环的次数确定,循环到所有次数执行完才会停止循环
 2、while循环次数不确定,只要满足条件就会一直执行,死循环就循环到底.....


num_new = len(str(input("输入的随机字符串:")))
num_ = 0   做计数
while num_new < 5:   当条件为真时,会循环执行到条件为假为止
    print("当前num的值:", num_new)
    num_new += 1
    num_ += 1
    print(f"第{num_}次循环")

  课堂:输入一个同学的成绩,60-70 A   70-80 S  80-90 SS  90-100 SSR
   课堂2: 99乘法表
def score_average():
    scores = input("请输入成绩,用,分隔:").split(',')
    scores = [int(scores) for scores in scores]
    score_average = sum(scores) / len(scores)
    scores_666 = []
    scores_A = []
    scores_P = []
    scores_Q = []
    scores_N = []
    scores_D = []
    for score_item in scores:
        result = fenduan(score_item)
        if result == '666':
            scores_666.append(score_item)
        elif result == 'A':
            scores_A.append(score_item)
        elif result == 'P':
            scores_P.append(score_item)
        elif result == 'Q':
            scores_Q.append(score_item)
        elif result == 'N':
            scores_N.append(score_item)
        else:
            scores_D.append(score_item)

    print("班级平均分:", "%.2f" %score_average,'位于',fenduan(score_average),'段')  #保留两位小数
    print("666段有:",len(scores_666), "人,分别为:", scores_666)
    print("A段有:",len(scores_A), "人,分别为:", scores_A)
    print("P段有:",len(scores_P), "人,分别为:", scores_P)
    print("Q段有:",len(scores_Q), "人,分别为:", scores_Q)
    print("不及格段有:",len(scores_N), "人,分别为:", scores_N)
    print("非法成绩为:", scores_D)

def fenduan(score):   #分段函数,用于成绩所属分段
    if score >= 90 and score <= 100:
        return '666'
    elif score >= 80 and score <= 89:
        return 'Q'
    elif score >= 70 and score <= 79:
        return 'P'
    elif score >= 60 and score <= 69:
        return 'A'
    elif score >= 0 and score <= 59:
        return 'N'
    else:
        return '-1'

def guess_number(guess, number):
    if guess == number:
        return False
    elif guess > number:
        return '猜大了!'
    else:
        return '猜小了!'
def guess_number_while():
    import random
    number = random.randint(1, 100)
    count = 0
    while count < 10:
        guess = int(input("while-请输入你猜的数字:"))
        count += 1
        guess_result = guess_number(guess, number)
        if guess_result==False:
            print("恭喜你,猜对了!")
            break
        else:
            print(guess_result)
    else:
        print("game over!正确答案是:", number)

def guess_number_for():
    import random
    number = random.randint(1, 100)
    count = 0
    for i in range(10):
        guess = int(input("for-请输入你猜的数字:"))
        count += 1
        guess_result = guess_number(guess, number)
        if guess_result == False:
            print("恭喜你,猜对了!")
            break
        else:
            print(guess_result)
    else:
        print("game over!正确答案是:", number)

def daffodil(last):
    for i in range(10, last):
        length = len(str(i))
        number_list = [int(j) for j in str(i)]  # 将数字转化为列表,便于计算
        if i == sum([number_list[j] ** length for j in range(length)]):
            print(i)

if __name__ == '__main__':
    # 1.输入几个同学的成绩,计算平均成绩,60-70位A,70-80位P,80-90位Q,90以上666,最后输出成绩的分段
    score_average()
    # 2.猜数字,一共10次机会,大了输出大了,小了输出小了,正确输出正确:for循环和while循环都要写
    guess_number_while()
    guess_number_for()
    # 3.水仙花,1000以内的水仙花:153=1*1*1+5*5*5+3*3*3
    daffodil(last=1000)

#请输入成绩,用,分隔:12,56,78,90,98,99,67,78,84,96
#班级平均分: 75.80 位于 P 段
#666段有: 4 人,分别为: [90, 98, 99, 96]
#A段有: 1 人,分别为: [67]
#P段有: 2 人,分别为: [78, 78]
#Q段有: 1 人,分别为: [84]
#不及格段有: 2 人,分别为: [12, 56]
# while-请输入你猜的数字:50
# 猜小了!
# while-请输入你猜的数字:75
# 猜小了!
# while-请输入你猜的数字:85
# 猜小了!
# while-请输入你猜的数字:95
# 猜小了!
# while-请输入你猜的数字:97
# 猜小了!
# while-请输入你猜的数字:99
# 猜大了!
# while-请输入你猜的数字:98
# 恭喜你,猜对了!
# for-请输入你猜的数字:50
# 猜小了!
# for-请输入你猜的数字:75
# 猜小了!
# for-请输入你猜的数字:80
# 猜小了!
# for-请输入你猜的数字:90
# 猜小了!
# for-请输入你猜的数字:95
# 猜大了!
# for-请输入你猜的数字:93
# 恭喜你,猜对了!
# 153
# 370
# 371
# 407
def score_average():
    scores = input("请输入成绩,用,分隔:").split(',')
    scores = [int(scores) for scores in scores]
    score_average = sum(scores) / len(scores)
    scores_666 = []
    scores_A = []
    scores_P = []
    scores_Q = []
    scores_N = []
    scores_D = []
    for score_item in scores:
        result = fenduan(score_item)
        if result == '666':
            scores_666.append(score_item)
        elif result == 'A':
            scores_A.append(score_item)
        elif result == 'P':
            scores_P.append(score_item)
        elif result == 'Q':
            scores_Q.append(score_item)
        elif result == 'N':
            scores_N.append(score_item)
        else:
            scores_D.append(score_item)

    print("班级平均分:", "%.2f" %score_average,'位于',fenduan(score_average),'段')  #保留两位小数
    print("666段有:",len(scores_666), "人,分别为:", scores_666)
    print("A段有:",len(scores_A), "人,分别为:", scores_A)
    print("P段有:",len(scores_P), "人,分别为:", scores_P)
    print("Q段有:",len(scores_Q), "人,分别为:", scores_Q)
    print("不及格段有:",len(scores_N), "人,分别为:", scores_N)
    print("非法成绩为:", scores_D)

def fenduan(score):   #分段函数,用于成绩所属分段
    if score >= 90 and score <= 100:
        return '666'
    elif score >= 80 and score <= 89:
        return 'Q'
    elif score >= 70 and score <= 79:
        return 'P'
    elif score >= 60 and score <= 69:
        return 'A'
    elif score >= 0 and score <= 59:
        return 'N'
    else:
        return '-1'

def guess_number(guess, number):
    if guess == number:
        return False
    elif guess > number:
        return '猜大了!'
    else:
        return '猜小了!'
def guess_number_while():
    import random
    number = random.randint(1, 100)
    count = 0
    while count < 10:
        guess = int(input("while-请输入你猜的数字:"))
        count += 1
        guess_result = guess_number(guess, number)
        if guess_result==False:
            print("恭喜你,猜对了!")
            break
        else:
            print(guess_result)
    else:
        print("game over!正确答案是:", number)

def guess_number_for():
    import random
    number = random.randint(1, 100)
    count = 0
    for i in range(10):
        guess = int(input("for-请输入你猜的数字:"))
        count += 1
        guess_result = guess_number(guess, number)
        if guess_result == False:
            print("恭喜你,猜对了!")
            break
        else:
            print(guess_result)
    else:
        print("game over!正确答案是:", number)

def daffodil(last):
    for i in range(10, last):
        length = len(str(i))
        number_list = [int(j) for j in str(i)]  # 将数字转化为列表,便于计算
        if i == sum([number_list[j] ** length for j in range(length)]):
            print(i)

if __name__ == '__main__':
    # 1.输入几个同学的成绩,计算平均成绩,60-70位A,70-80位P,80-90位Q,90以上666,最后输出成绩的分段
    score_average()
    # 2.猜数字,一共10次机会,大了输出大了,小了输出小了,正确输出正确:for循环和while循环都要写
    guess_number_while()
    guess_number_for()
    # 3.水仙花,1000以内的水仙花:153=1*1*1+5*5*5+3*3*3
    daffodil(last=1000)

#请输入成绩,用,分隔:12,56,78,90,98,99,67,78,84,96
#班级平均分: 75.80 位于 P 段
#666段有: 4 人,分别为: [90, 98, 99, 96]
#A段有: 1 人,分别为: [67]
#P段有: 2 人,分别为: [78, 78]
#Q段有: 1 人,分别为: [84]
#不及格段有: 2 人,分别为: [12, 56]
# while-请输入你猜的数字:50
# 猜小了!
# while-请输入你猜的数字:75
# 猜小了!
# while-请输入你猜的数字:85
# 猜小了!
# while-请输入你猜的数字:95
# 猜小了!
# while-请输入你猜的数字:97
# 猜小了!
# while-请输入你猜的数字:99
# 猜大了!
# while-请输入你猜的数字:98
# 恭喜你,猜对了!
# for-请输入你猜的数字:50
# 猜小了!
# for-请输入你猜的数字:75
# 猜小了!
# for-请输入你猜的数字:80
# 猜小了!
# for-请输入你猜的数字:90
# 猜小了!
# for-请输入你猜的数字:95
# 猜大了!
# for-请输入你猜的数字:93
# 恭喜你,猜对了!
# 153
# 370
# 371
# 407