Python编程基础 第四章 编程练习 请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体;2)具有用于初始化半径和高的构造方法;(3)具有计算圆柱体体积

题目内容:

请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体(包括半径和高);(2)具有用于初始化半径和高的构造方法;(3)具有计算圆柱体体积的方法GetVolume。

import math
#请在此处写出Cylinder类定义的代码(提示:计算体积时使用math.pi作为圆周率)

if __name__=='__main__':
    r=eval(input()) #输入半径
    h=eval(input()) #输入高
    c=Cylinder(r,h) #创建Cylinder对象
    print('radius:%.2f,height:%.2f'%(c.r,c.h)) #输出半径和高
    print('volume:%.2f'%c.GetVolume()) #输出体积

输入格式:

分两行分别输入半径和高

输出格式:

第一行输出半径和高,第二行输出体积

输入样例:

3
5.2

输出样例:

radius:3.00,height:5.20
volume:147.03

时间限制:500ms内存限制:32000kb

代码:

import math

class Cylinder:
    def __init__(self, radius, height):
       self.r = radius
       self.h = height
       
    def GetVolume(self):
        return math.pi * self.r**2 * self.h

if __name__=='__main__':
    r=eval(input()) #输入半径
    h=eval(input()) #输入高
    c=Cylinder(r,h) #创建Cylinder对象
    print('radius:%.2f,height:%.2f'%(c.r,c.h)) #输出半径和高
    print('volume:%.2f'%c.GetVolume()) #输出体积
用例测试结果运行时间占用内存提示得分
用例1通过30ms4624kb1
用例2通过32ms4516kb1

提交答案

本次得分/总分:2.00/2.00分

### 解决Content Security Policy (CSP) img-src &#39;self&#39; data: base64 错误 当遇到 `img-src` CSP 指令违反策略的问题时,通常是由于网页尝试加载不符合指定来源的图像资源引起的。以下是可能的原因以及解决方案: #### 原因分析 1. **CSP 策略定义不足** 当前 CSP 中设置了 `img-src &#39;self&#39;`,这意味着只有来自同一源(即当前域名)的图片才能被加载。如果页面中有通过 `data:` 或者其他外部 URL 加载的图片,则会被阻止[^1]。 2. **Base64 图像嵌入问题** 使用 Base64 编码的内联图像是一种常见的优化手段,但如果未显式允许 `data:` 协议,在 CSP 下这些图像将无法正常显示。 3. **动态生成的内容冲突** 动态注入 HTML 内容可能导致意外行为,尤其是当内容中包含不受信任的数据时,这可能会触发 CSP 警告或错误。 --- #### 解决方案 ##### 方法一:扩展 `img-src` 定义范围 修改 `<meta>` 标签中的 CSP 策略以支持更多型的图像来源。例如: ```html <meta http-equiv="Content-Security-Policy" content="default-src &#39;self&#39;; script-src &#39;self&#39;; img-src &#39;self&#39; data:;"> ``` 上述配置表示除了允许同源的图片外,还允许基于 Base64 的编码图像加载。 ##### 方法二:调整服务器端响应头 如果 CSP 是由 HTTP 头部设置而非 `<meta>` 标签控制,则需更新 Web 服务器配置文件。对于 Nginx Apache 分别有以下示例: - **Nginx** ```nginx add_header Content-Security-Policy "default-src &#39;self&#39;; script-src &#39;self&#39;; img-src &#39;self&#39; data;"; ``` - **Apache** ```apache Header set Content-Security-Policy "default-src &#39;self&#39;; script-src &#39;self&#39;; img-src &#39;self&#39; data;" ``` 以上更改确保浏览器能够识别并接受 Base64 数据作为合法的图像来源[^1]。 ##### 方法三:移除违规代码片段 检查前端代码是否存在非法调用第三方资源的情况。比如某些框架库自动插入了跨域求或者使用了未经许可的协议加载媒体资产。清理掉不必要的部分有助于减少潜在风险。 ##### 方法四:启用报告机制捕获异常事件 为了更好地监控实际运行状况,建议开启 CSP Reports 功能收集反馈日志以便后续改进措施制定。 ```html <meta http-equiv="Content-Security-Policy" content="... report-uri /csp-report-endpoint"> ``` 此操作会把每次发生的违禁访问记录提交至指定 URI 地址供管理员审查处理。 --- ### 示例代码展示 下面给出一段简单的 PHP 页面演示如何正确应用增强后的 CSP 设置防止似问题再次发生。 ```php <?php header(&#39;Content-Security-Policy: default-src \&#39;self\&#39;; script-src \&#39;self\&#39;; img-src \&#39;self\&#39; data:&#39;); ?> <!DOCTYPE html> <html lang="en"> <head> <title>CSP Example</title> </head> <body> <!-- 合法本地图片 --> <img src="/images/example.jpg"> <!-- 合法base64编码图片 --> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..." alt="Embedded Image"> <h1>Secure Page Loaded Successfully!</h1> </body> </html> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值