Python 的小练习二

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

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

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

    536 引用 • 672 回帖
  • 编程
    50 引用 • 257 回帖 • 3 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 399 关注
  • Mac

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

    164 引用 • 594 回帖 • 1 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖
  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 2 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 1 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    330 引用 • 614 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 2 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1347 回帖
  • Sublime

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

    10 引用 • 5 回帖
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 609 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 38 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 92 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 521 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 996
    13 引用 • 200 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 45 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 405 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    180 引用 • 447 回帖 • 1 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 125 关注
  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1398 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 604 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    129 引用 • 793 回帖 • 1 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 685 关注