Python 的小练习二

本贴最后更新于 1433 天前,其中的信息可能已经沧海桑田

如有错误或者更好的解答方式,欢迎批评指正与交流。

1.随机密码生成:生成一个有 10 个元素的由随机数 n 组成的列表,其中 n 的取值范围为 0<=n<=9。

#随机密码生成 import random passwd = [] for i in range(10): passwd.append(random.randint(0, 9)) print(passwd)

2.文本字符分析

设执行了如下语句:

s1=”programming”

s2=”language”

s3=”She is the best student in her class”

s4=”he”

(1)取 s1 串下标为 1 的字符串字符。

(2)取 s1 串下标从开始到 3 的子串。

(3)连接 s1 串下标为 0 的字符和 s2 串下标从 1 到 2 的子串。

(4)连接首字符大写后的 s1 串和全部大写的 s2 串。

(5)计算 s1 串中的字符’r’的个数,从字符’r’在 s1 串的左边和右边第一次出现的位置,并累和。

(6)将字符串 s2 作为分隔符加入到序列参数’- -' 的每个字符之间。结果为’-language-‘

(7)将字符串’-'作为分隔符加入到参数 s2 串的每个字符之间。

(8)以参数字符’-'为分隔符,将字符串 s4 分离到一个列表中。S4=’l-a-n-g-u-a-g-e’

(9)取串 s2 开始两个字符连接一个空格后复制 3 次。

(10)将串 s2 反转

(11)判断 s4 是 s3 的子串

(12)判断 s4 在 s3 中出现的次数超过 2 次

(13)利用 s1、s2 和字符串操作,写出能产生下列结果的表达式。

①”program”

②”ProLan”

③”am am am”

④”programming language”

⑤”progr@mming l@ngu@ge”

#文本字符分析 s1 = "programming" s2 = "language" s3 = "She is the best student in her class" s4 = "he" #取s1串下标为1的字符串字符 print(s1[1]) #取s1串下标从开始到3的子串 print(s1[:4]) #连接s1串下标为0的字符和s2串下标从1到2的子串 print(s1[0] + s2[1:3]) #连接首字符大写后的s1串和全部大写的s2串 print(s1.capitalize() + s2.upper()) #计算s1串中的字符’r’的个数,从字符’r’在s1串的左边和右边第一次出现的位置,并累和 rnum = s1.count('r') rleft = s1.find('r') rright = s1.rfind('r') total = rnum + rleft + rright print("字符’r’的个数:" + str(rnum)) print("字符’r’在s1串的左边第一次出现的位置:" + str(rleft)) print("字符’r’在s1串的右边第一次出现的位置:" + str(rright)) print("累和:" + str(total)) #将字符串s2作为分隔符加入到序列参数'- -' 的每个字符之间。结果为'-language-' print(s2.join('--')) #将字符串'-'作为分隔符加入到参数s2串的每个字符之间 print('-'.join(s2)) #以参数字符'-'为分隔符,将字符串S4分离到一个列表中。S4='l-a-n-g-u-a-g-e' S4 = 'l-a-n-g-u-a-g-e' print(S4.split('-')) #取串s2开始两个字符连接一个空格后复制3次 new_s2 = s2[:2] + ' ' print(new_s2 * 3) #将串s2反转 print(s2[::-1]) #判断s4是s3的子串 print(s4 in s3) #判断s4在s3中出现的次数超过2次 print(s3.count(s4) > 2) #利用s1、s2和字符串操作,写出能产生下列结果的表达式 #s1 = "programming" #s2 = "language" #program print(s1[:7]) #ProLan print(s1[:3].capitalize() + s2[:3].capitalize()) #am am am new_s1 = s1[5:7] + " " print(new_s1 * 3) #programming language print(s1 + " " + s2) #progr@mming l@ngu@ge sadd = s1 + " " + s2 print(sadd.replace('a', '@'))

3.程序设计:输入连续 5 天的气温,求平均气温。

#输入连续5天的气温,求平均气温 totalair = 0 for i in range(5): totalair = totalair + float(input()) print("平均气温:" + str(totalair / 5))

4.重复元素判定: 用 set 方法去重后与原列表长度比较

#重复元素判定: 用set方法去重后与原列表长度比较 oldlist = ['p', 'r', 'o', 'g', 'r', 'a', 'm', 'm', 'i', 'n', 'g'] newlist = set(oldlist) print(len(oldlist) - len(newlist))

5.提示输入一组带重复的实验数据,统计每个数据出现的次数

输入输出示例如下:

请输入一组数据,以逗号分隔:2.5,2.5,3.5,3.5,6.0,8

输入的数据转化为的字符列表['2.5', '2.5', '3.5', '3.5', '6.0', '8']

字符列表转化为数值列表[2.5, 2.5, 3.5, 3.5, 6.0, 8.0]

去重的列表[8.0, 2.5, 3.5, 6.0]

以列表显示每个数字显示的次数[[2.5, 2], [3.5, 2], [6.0, 1], [8.0, 1]]

数字 2.5 出现了 2 次

数字 3.5 出现了 2 次

数字 6.0 出现了 1 次

数字 8.0 出现了 1 次

#提示输入一组带重复的实验数据,统计每个数据出现的次数 from collections import Counter s = input("请输入一组数据,以逗号分隔:") #数据转字符列表 slist = s.split(',') print("输入的数据转化为的字符列表", end='') print(slist) #字符列表转数值列表 slist = [float(x) for x in slist] print("字符列表转化为数值列表", end='') print(slist) #使用set进行列表去重 new_slist = list(set(slist)) print("去重的列表", end='') print(new_slist) #使用Counter统计列表中数值出现次数,并转化为字典 num_slist = dict(Counter(slist)) #讲字典转为嵌套列表 new_kvlist = [] for k, v in num_slist.items(): kvlist = [] kvlist.append(k) kvlist.append(v) new_kvlist.append(kvlist) print("以列表显示每个数字显示的次数", end='') print(new_kvlist) #输出数值出现次数 for k, v in num_slist.items(): print("数字" + str(k) + "出现了" + str(v) + "次")
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    556 引用 • 674 回帖
  • 编程
    54 引用 • 267 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 2 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 736 关注
  • gRpc
    11 引用 • 9 回帖 • 89 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 676 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 592 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 1 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    586 引用 • 3538 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    167 引用 • 595 回帖
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    366 引用 • 1842 回帖 • 1 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖 • 1 关注
  • AWS
    11 引用 • 28 回帖 • 9 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 168 关注
  • 996
    13 引用 • 200 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 734 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 33 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 3 关注
  • 自由行
    1 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    66 引用 • 114 回帖 • 201 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 653 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 13 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1440 引用 • 10067 回帖 • 488 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 546 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 19 关注