Python123——第三次Python上机题

1.统计列表中的单词出现的次数并打印

已有一个列表.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569A.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569"B.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569"B.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569"C.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569"C.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬# 0031003200320031003700320039569‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

统计多个数据在列表中出现的次数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

输出按照 A  B  C的顺序输出(需要排序)

ls=["A","B","B","C","C"]
x=set(ls) # set()函数创建一个无序不重复元素集合
z=sorted(list(x)) #按顺序输出列表里的数
for i in z:
    print(i, ":", ls.count(i)) #这时候i代表ls里面的"A","B","C",所以可以直接count
"""
ls=["A","B","B","C","C"]
print("A : {:d}".format(ls.count("A"))) #不能写成 print("A : {ls.count("A")}"),会报错:SyntaxError: invalid syntax
print("B : {:d}".format(ls.count("B")))
print("C : {:d}".format(ls.count("C")))
%d就是普通的输出了整形数
%2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。
%02d,和%2d差不多,只不过左边补0
%-2d将数字按宽度为2,采用左对齐方式输出,若数据位数不到2位,则右边补空格
%.2d 输出整形时最少输出2位,如不够前面以0占位。如输出2时变成02,200时只输出200;输出浮点型时(%.2f)小数点后强制2位输出
"""

2.绩点计算‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

平均绩点计算方法:(课程学分1*绩点+课程学分2*绩点+......+课程学分n*绩点)/(课程学分1+课程学分2+......+课程学分n) 用户循环输入五分制成绩和课程学分,题目测试数据保证至少有一组或以上合法数据输入。输入‘-1’时结束输入,计算学生平均绩点。等级与绩点对应关系如下表:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

成绩 等级 绩点
90-100 A 4.0
85-89 A- 3.7
82-84 B+ 3.3
78-81 B 3.0
75-77 B- 2.7
72-74 C+ 2.3
68-71 C 2.0
64-67 C- 1.5
60-63 D 1.3
补考60 D- 1.0
60以下 F 0

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

每组输入包括两行
第一行是五分制的分数
第二行是一个代表学分的数字‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

平均绩点,严格保留两位小数

#用户循环输入五分制成绩和课程学分,计算学生平均绩点
score = {'A':4.0, 'A-':3.7, 'B+':3.3, '
### 如何定义一个语言子集的词法规则 为了定义一种语言子集的词法规则,可以按照以下方式分类并描述每种类型的单词: #### 1. **保留字** 保留字是指在编程语言中有特定含义的关键字。这些关键字通常用于控制结构、数据声明或其他重要功能。例如,在C语言中,“if”、“else”、“while”等都是保留字。 - 定义规则:保留字通常是固定的字符串集合,可以直接枚举出来[^1]。 #### 2. **标识符** 标识符是用来命名变量、函数和其他用户自定义实体的名字。 - 定义规则:标识符一般以字母开头,后面可以跟任意数量的字母或数字,某些情况下允许下划线作为组成部分[^5]。 #### 3. **常数** 常数表示固定不变的数据值,比如整数、浮点数或者字符串。 - 整数常量:由连续的数字组成,不带任何小数点或指数部分。 - 浮点数常量:包含一个小数点,并可能有指数形式(e.g., `1.0`, `3.14E-1`)。 - 字符串常量:被双引号包围的一系列字符。 #### 4. **运算符** 运算符执行操作于表达式的项之间,如加减乘除等基本算术运算符。 - 运算符种类繁多,包括但不限于加(`+`)、减(-)、乘(*)、除(/),还有逻辑与关系运算符等等。 #### 5. **分隔符** 分隔符用来划分不同的语法单元,常见的例子像逗号`,`、圆括号`()`、方括号`[]`和大括号`{}`。 --- ### 设计状态转换图 状态转换图是一种图形化工具,帮助理解输入流如何逐步解析成合法的语言成分。以下是构建状态转换图的一些指导原则: - 开始状态:初始状态下等待接收第一个字符。 - 接受状态:当达到某个条件满足的状态时,则认为找到了一个新的标记(token)。 - 错误处理路径:如果遇到非法字符组合,则进入错误状态并记录错误位置以便后续修复。 下面给出一个简化版针对简单数值识别的例子: ```plaintext S0 --digit--> S1 (number) | | ----alpha----> Error State ``` 其中, - `S0`: 初始状态; - `S1`: 数字接受状态; - 如果接收到的是字母而非预期中的数字,则转移到错误状态。 --- ### 编码表生成 编码表的作用在于将实际读取到的具体符号映射为其内部唯一编号或者其他更紧凑的形式存储起来供进一步处理使用。这一步骤可以通过哈希表来高效实现查找匹配过程。 示例Python代码片段展示了一个基础版本的实现思路: ```python def lexeme_to_code(lexeme): token_map = { 'if': ('RESERVED', 1), 'then': ('RESERVED', 2), '+': ('OPERATOR', 3), '-': ('OPERATOR', 4), # 更多功能... } if lexeme in token_map: return token_map[lexeme] elif re.match(r'^\d+$', lexeme): # 假设只考虑正整数情况下的常数检测 return ('NUMBER', int(lexeme)) else: raise ValueError(f'Unrecognized lexeme {lexeme}') print(lexeme_to_code('if')) # 输出: ('RESERVED', 1) print(lexeme_to_code('+')) # 输出: ('OPERATOR', 3) print(lexeme_to_code('123')) # 输出: ('NUMBER', 123) try: print(lexeme_to_code('$invalid')) except Exception as e: print(e) # 处理未知词汇的情况 ``` 上述代码展示了如何基于预定义好的token map来进行快速查询定位工作的同时也提供了异常捕获机制应对可能出现的新奇状况[^3]。 --- ### 调试流程说明 调试阶段主要关注两方面内容——功能性验证以及性能优化测试。前者确保所有规定行为都能正常运作无误;后者则是寻找潜在瓶颈从而提升整体效率水平。 - 功能性验证建议采用边界案例驱动的方式进行全面覆盖尝试,特别是那些容易引发歧义的地方应该特别留意。 - 性能调优可以从减少不必要的重复计算入手,利用缓存技术保存中间结果等方式提高运行速度[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值