练习python题目小记(五)

1.题目要求:编写一个程序来检查一个单词是否为同源词。 同源词是指不包含任何重复字母的单词

解题代码:return len(word) == len(set(word))

set表示的是集合,集合具有自动去重的特点,set(word)就是将word中的重复字符给除去,如果除去重复字符后的字符串的长度和原来的相同,那么它就是一个同源词。

2.题目要求:编写一个python代码,计算整数的二进制形式中有多少个1.

这里我们使用到了bin方法,它会将数据转化成二进制的形式,并在前面加上0b的前缀,我们可以使用字符串切片的方法是他输出的结果不含前缀(bin(6)[2:] 的输出结果就是:110)。

因为bin是以字符串的形式输出结果的,所以我们可以使用字符串的方法.count(忽略前缀和负号)来计算其中1的个数。

3.这道题相对简单,就不记录题目和解答代码了,记录下一个小知识点

/是真除法返回的是float类型的数据,//是整数除法,返回的是int类型的数据

4.题目要求我们计算从1到n中所有偶数,并以列表形式输出,最开始的思路是先计算出所有的偶数然后将所有的偶数赋值给一个列表,但后来想到列表推导式,直接一行代码搞定了题目(python就是好用)

代码:return [x for x in range(1, num + 1) if x % 2 == 0](range是左闭右开的)

5.求第n个斐波那契数列

a, b = 0, 1

for _ in range(n):

a, b = b, a + b

return a

这里使用到了一个多重赋值,在前面有提到过,这里就不解释了。for _ in range(n):这个就是一个循环,就是重复n次但是不管这是第几次,这里使用匿名变量,从而避免变量名的浪费。

6.题目要求我们如图所示的反转一下代码

解题代码:return ' '.join(sentence.split()[::-1])

先将这个字符串按照任意空白(空格,换行等)分割成单词列表,然后将列表进行翻转,最后通过单个的空格将他们拼接在一起。

split原型:str.split(sep=None, maxsplit=-1)

sep表示的是按照什么进行分割,maxsplit表示的是分割次数,默认-1表示不限制次数。

相关推荐
梵刹古音1 分钟前
【C语言】 循环结构
c语言·开发语言·算法
消失的旧时光-19433 分钟前
C++ 函数参数传递方式总结:什么时候用值传递、引用、const 引用?
开发语言·c++
2601_949868364 分钟前
Flutter for OpenHarmony 剧本杀组队App实战04:发起组队表单实现
开发语言·javascript·flutter
一匹电信狗5 分钟前
【C++】CPU的局部性原理
开发语言·c++·系统架构·学习笔记·c++11·智能指针·新特性
m0_561359679 分钟前
C++代码冗余消除
开发语言·c++·算法
毕设源码-郭学长12 分钟前
【开题答辩全过程】以 基于Python爬取学院师资队伍信息的设计与分析为例,包含答辩的问题和答案
开发语言·python
会开花的二叉树14 分钟前
吃透Reactor多线程:EventLoop_Channel_ThreadPool协作原理
开发语言·c++·tcp/ip·servlet
Jm_洋洋16 分钟前
【C++进阶】虚函数、虚表与虚指针:多态底层机制剖析
java·开发语言·c++
老骥伏枥~18 分钟前
C# 控制台:Console.ReadLine / WriteLine
开发语言·c#
爱装代码的小瓶子21 分钟前
【C++与Linux基础】进程如何打开磁盘文件:从open()到文件描述符的奇妙旅程(更多源码讲解)
linux·开发语言·c++