def f1(m): s=0 for i in str(m): s+=int(i) return s def f2(n): s=0 while n>0: s=s+1 n=n//10 return s print(f1(123)//f2(123))
时间: 2024-02-14 18:21:08 浏览: 28
这段代码的输出结果是 2。
代码首先定义了两个函数 f1 和 f2。f1 函数的作用是将传入的参数 m 转换成字符串,然后将每个字符转换成整数并求和,最后返回这个和。f2 函数的作用是计算传入的参数 n 的位数,方法是不断将 n 除以 10 直到小于 1,每除一次计数器 s 就加 1,最后返回计数器的值。
在主程序中,代码先调用 f1(123) 得到 6(即 1+2+3 的和),再调用 f2(123) 得到 3(即 123 的位数)。最后将这两个值相除并向下取整,得到 2。因此最终输出结果为 2。
相关问题
课本P133,认真阅读变量的作用域,分清局部变量和全局变量,给下面的程序段注释写完整: def f1(): x = 5 return xx #x是?(局部变量/全局变量) def f2(): return xx #x是?(局部变量/全局变量) x = 10 #x是?(局部变量/全局变量) print(x) #打印结果是什么? print(f1()) #打印结果是什么? print(f2()) #打印结果是什么题目、【思考题】阿姆斯特朗数: 3位的阿姆斯特朗数称为水仙花数,代表每位数字的立方和还是该数;4位的阿姆斯特朗数称为四叶玫瑰数,代表每位数字的4次幂之和还是该数;5位的阿姆斯特朗数称为五角星数,代表每位数字的5次幂之和还是该数。用键盘输入一个【3,4,5】中的任意数字,求出对应位数的阿姆斯特朗数。 提示:def Armstrong(n)其中n代表位数。调用Armstrong(3),打印所有3位的水仙花数。(文件保存为H6-7.py 题目、【思考题】更多的田字格。函数grid(n)来打印n个田字格。输入2则输出如图所示更大的田字格(22的田字格)。(文件保存为H6-8.py) 【运行结果截图,结果最后有自己学号姓名的打印】 题目、【思考题】输出NN的方格矩阵。参考上一题(田字格)。如下所示,输入1(代表阶数),输出1个方格;输入2,输出一个22的方格;输入3,则输出33的方格。(文件保存为H6-9.py)
程序段注释:
```python
def f1():
x = 5 # x是局部变量
return x
def f2():
return x # x是全局变量
x = 10 # x是全局变量
print(x) # 打印结果是10
print(f1()) # 打印结果是5
print(f2()) # 打印结果是10
```
思考题1:阿姆斯特朗数
```python
def Armstrong(n):
for i in range(10**(n-1), 10**n):
s = 0
for j in str(i):
s += int(j)**n
if s == i:
print(i)
n = int(input("请输入3、4或5:"))
if n == 3:
Armstrong(3)
elif n == 4:
Armstrong(4)
elif n == 5:
Armstrong(5)
else:
print("输入错误!")
```
思考题2:田字格
```python
def grid(n):
for i in range(2*n+1):
if i % 2 == 0:
print("+ " + "- " * n + "+")
else:
print("| " + " " * n + "|")
n = int(input("请输入田字格数量:"))
grid(n)
```
思考题3:方格矩阵
```python
def square(n):
for i in range(n):
print("+ " + "- " * n + "+")
for j in range(n):
print("| " + " " * n + "|")
print("+ " + "- " * n + "+")
n = int(input("请输入阶数:"))
square(n)
```
运行结果截图见链接:https://img-blog.csdnimg.cn/20211018113703211.png
def classification_report_to_dict(report): lines = report.split('\n') lines = [line.strip() for line in lines if line.strip()] classes = [] class_dict = {} for line in lines[1:]: t = line.split() if len(t) == 1: class_name = t[0] classes.append(class_name) class_dict[class_name] = {} else: class_dict[class_name]['precision'] = float(t[0]) class_dict[class_name]['recall'] = float(t[1]) class_dict[class_name]['f1-score'] = float(t[2]) class_dict[class_name]['support'] = int(t[3]) macro_avg = lines[-3].split() micro_avg = lines[-2].split() class_dict['macro avg'] = {'precision': float(macro_avg[1]), 'recall': float(macro_avg[2]), 'f1-score': float(macro_avg[3]), 'support': int(macro_avg[4])} class_dict['micro avg'] = {'precision': float(micro_avg[1]), 'recall': float(micro_avg[2]), 'f1-score': float(micro_avg[3]), 'support': int(micro_avg[4])} return class_dict def classification_report_from_dict(report_dict): classes = list(report_dict.keys()) classes.remove('macro avg') classes.remove('micro avg') lines = [' precision recall f1-score support\n\n'] for class_name in classes: line = f"{class_name.ljust(15)}{report_dict[class_name]['precision']:.2f} {report_dict[class_name]['recall']:.2f} {report_dict[class_name]['f1-score']:.2f} {report_dict[class_name]['support']:5d}\n" lines.append(line) lines.append('\n') macro_avg = report_dict['macro avg'] line = f"{'macro avg'.ljust(15)}{macro_avg['precision']:.2f} {macro_avg['recall']:.2f} {macro_avg['f1-score']:.2f} {macro_avg['support']:5d}\n" lines.append(line) micro_avg = report_dict['micro avg'] line = f"{'micro avg'.ljust(15)}{micro_avg['precision']:.2f} {micro_avg['recall']:.2f} {micro_avg['f1-score']:.2f} {micro_avg['support']:5d}\n" lines.append(line) report_str = ''.join(lines) return report_str for i, report in enumerate(report): report_dict[f'report_{i + 1}'] = classification_report_to_dict(report) report_df = pd.DataFrame.from_dict(report_dict, orient='index') avg_report_dict = report_df.mean().to_dict() avg_report_str = classification_report_from_dict(avg_report_dict) print(avg_report_str)出现local variable 'class_name' referenced before assignment怎么解决
这个错误通常是因为在使用变量之前没有对其进行初始化或赋值,或者在使用变量之前使用了删除、重命名或声明之前的变量名。在你提供的代码中,我无法确定错误具体出现在哪一行,但是最可能的原因是在 `classification_report_from_dict` 函数中的 `classes` 列表为空,导致 `class_name` 变量没有被初始化。你可以在调用 `classification_report_from_dict` 函数之前,检查 `report_dict` 是否包含正确的数据。你也可以在 `classification_report_from_dict` 函数中添加一些错误处理机制,以避免出现未定义变量的情况。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)