当前位置: 首页 > news >正文

Python | 刷题笔记

1.杨辉三角的构建

n=int(input("请输入你想生成的杨辉三角行数:"))
tar=[[1],[1,1]]
for i in range(2,n):pre=tar[i-1]#用来生成后面的数字cul=[1]#用来记录当前行的数组for j in range(i-1):cul.append(pre[j]+pre[j+1])cul.append(1)tar.append(cul)print(tar)    
for i in range(n):#python注意锁进 不要忘记缩进c=" "*(-i-1+n)#利用一个字符串记录空格和数字for j in tar[i]:#加上每行的元素,开始计算c=c+str(j)+" "print(c)

2.除字典类型外,所有标准对象均可以用于布尔测试?

这句话“除字典类型外,所有标准对象均可以用于布尔测试?”是错误的,因为实际上字典类型(以及其他容器类型,如列表、元组、集合等)都可以用于布尔测试。

在Python中,几乎所有的对象都有一个“真值”(truthy value),这决定了在布尔上下文中(例如if语句或逻辑运算)该对象如何被解释。字典类型的真值是基于其内容:如果字典是空的(即不包含任何键值对),则其在布尔上下文中被视为False;如果字典包含至少一个键值对,则被视为True

因此,不仅是字典类型,Python中的几乎所有标准对象(包括数字、字符串、列表、元组、集合、字典、函数、类等)都可以用于布尔测试。

总结来说,这句话错误的原因是它错误地排除了字典类型用于布尔测试的可能性。实际上,字典类型和其他标准对象一样,都可以用于布尔测试。

3.为什么dict3={[1,2,3]:"uestc"}不能创建一个字典 

在Python中,字典(dict)的键(key)必须是不可变(immutable)的数据类型,如整数(int)、浮点数(float)、字符串(str)、元组(如果元组中的元素也都是不可变的,即嵌套元组中的元素也都是不可变的)等。列表(list)是一个可变(mutable)的数据类型,因此不能用作字典的键。

在你给出的例子中:

 
dict3={[1,2,3]:"uestc"}

你试图使用一个列表 [1, 2, 3] 作为字典 dict3 的键,这是不允许的,因为列表是可变的。如果你尝试运行这行代码,Python会抛出一个 TypeError,告诉你列表不能用作字典的键。

为了创建一个有效的字典,你需要使用一个不可变类型作为键。例如,你可以使用元组(只要元组中的元素也是不可变的)或字符串作为键:

# 使用元组作为键(注意:元组内的元素也是不可变的)  
dict3={(1, 2, 3): "uestc"}  # 使用字符串作为键  
dict3={"123": "uestc"}

这样你就可以成功地创建字典了。

4.为什么错了

def sho(nu):for n in nu:print(n)sho(3.4)

在Python中,当你尝试对一个非迭代对象(比如整数、浮点数、布尔值等)进行迭代时,你会遇到一个TypeError,因为这些类型的对象并不支持迭代操作。

为了修复这个错误,你需要确保传递给sho函数的参数是一个可迭代对象,比如列表、元组、字符串、集合或字典等。例如:

def sho(nu): 
for n in nu: 
print(n) # 使用列表 
sho([1, 2, 3, 4]) # 使用元组 
sho((1, 2, 3, 4)) # 使用字符串 
sho("hello") # 使用集合 
sho({1, 2, 3, 4}) # 使用字典(注意这会迭代字典的键) 
sho({'a': 1, 'b': 2, 'c': 3})

如果你想要函数能够接受单个数字(比如浮点数3.4)并打印它,你不需要迭代,直接打印即可:

def sho(nu): 
print(nu) sho(3.4)

 

5.为什么错了:一维数据采用线性方式组织,对应于数学中的数组和集合等概念

你提到的“一维数据采用线性方式组织,对应于数学中的数组和集合等概念”在严格意义上并不完全准确,因为数组(array)和集合(set)在数学和编程中有不同的定义和特性。

  1. 数组(Array)
    • 在数学中,数组通常指的是一系列具有相同类型(或结构)的元素,它们按照特定的顺序排列。
    • 在编程中,数组是一种数据结构,用于存储固定大小的同类型元素的集合。这些元素可以通过索引来访问,索引通常是整数,从0开始。
    • 一维数组确实是一维数据的线性表示。
  2. 集合(Set)
    • 在数学中,集合是一个无序的、不重复的元素集。集合中的元素没有特定的顺序,并且每个元素在集合中只出现一次。
    • 在编程中,集合(或称为“哈希集合”或“哈希表”)是一种数据结构,用于存储唯一元素(即没有重复)的集合。然而,它们通常不保证元素的特定顺序(尽管某些集合实现可能会按照插入顺序或某种特定顺序来迭代元素)。
    • 由于集合是无序的,并且不保证元素的特定顺序,因此它们不是一维数据的线性表示。

因此,说“一维数据采用线性方式组织,对应于数学中的数组和集合等概念”是不准确的。更准确的说法是:

  • 一维数据采用线性方式组织,对应于数学中的数组和编程中的数组数据结构。
  • 集合虽然可以存储一维数据(即集合中的元素),但由于其无序性和不保证顺序的特性,它通常不被视为一维数据的线性表示。

希望这有助于澄清这个概念!

 

相关文章:

  • vue -ant -design 卡片是布局 实现动态计算 当前的 左右间距 实现居中
  • MySQL——覆盖索引
  • 面试经典题:创建三个线程,按顺序依次循环打印hello+i
  • 你觉得学历在贬值吗?
  • 关于ASPICE 4.0评估师资质更新的说明-亚远景科技
  • Java多线程核心工具类
  • 运维开发之Linux机器码
  • 健康中国,福佑全球!第32届广州大健康展将于6月14-16日盛大举办
  • 21、matlab生成脉冲序列:pulstran()函数
  • thinkpad T440p ubuntu-slam软件安装记录
  • 【前端 - Vue】Vuex基础入门,创建仓库的详细步骤
  • 【Ambari】Docker 安装Ambari 大数据单机版本
  • vscode+latex设置跳转快捷键
  • PhpSpreadsheet表格导出
  • 一种基于高德Web API实现沿路画面的实现
  • 0x05 Python数据分析,Anaconda八斩刀
  • 2017-08-04 前端日报
  • go append函数以及写入
  • Hibernate最全面试题
  • JavaScript 基本功--面试宝典
  • JavaScript 基础知识 - 入门篇(一)
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Linux快速复制或删除大量小文件
  • Lucene解析 - 基本概念
  • mockjs让前端开发独立于后端
  • Octave 入门
  • quasar-framework cnodejs社区
  • RxJS: 简单入门
  • springMvc学习笔记(2)
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 给第三方使用接口的 URL 签名实现
  • 关于使用markdown的方法(引自CSDN教程)
  • 欢迎参加第二届中国游戏开发者大会
  • 记一次和乔布斯合作最难忘的经历
  • 聚簇索引和非聚簇索引
  • 聊聊flink的BlobWriter
  • 设计模式 开闭原则
  • 探索 JS 中的模块化
  • 新手搭建网站的主要流程
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • ​Python 3 新特性:类型注解
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​ssh免密码登录设置及问题总结
  • # 数论-逆元
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (MATLAB)第五章-矩阵运算
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (三)Honghu Cloud云架构一定时调度平台
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • **CI中自动类加载的用法总结
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】