Python习题进阶

1.十六进制数字的大小

描述

计算的世界,除了二进制与十进制,使用最多的就是十六进制了,现在使用input读入一个十六进制的数字,输出它的十进制数字是多少?

输入描述:

input读入一个十六进制数字,按照字符串的形式包括数字0-9、字母A-F。

输出描述:

输出读入数字的十进制大小。

示例1

输入:
A
复制输出:
10

答案

a=input()
a=int(a,16)
print(a)

题解

这里主要是int在强制转换的用法(变量a的引号无论写于不写,不妨碍答案的正确性)

 2.单词的长度

描述

牛妹正在学英语,但是背单词实在是太痛苦了,她想让你帮她写一个小程序,能够根据输入的单词,快速得到单词的长度。

输入描述:

输入一个字符串,仅包含大小写字母。

输出描述:

输出字符串的长度。

示例1

输入:
Hello
输出:
5

答案

str1=input()
str1.isalpha()
print(len(str1))

题解

这里需要了解的是长度的一些用法。
        #s.isalpha: 判断字符串是否由字母组成
        #s.isdigit: 判断字符串是否由数字组成
        #s.isalnum: 判断是否数字和字母的组合

3.格式化输出(一)

描述

牛牛、牛妹和牛可乐都是Nowcoder的用户,某天Nowcoder的管理员希望将他们的用户名以某种格式进行显示,

现在给定他们三个当中的某一个名字name,请分别按全小写、全大写和首字母大写的方式对name进行格式化输出(注:每种格式独占一行)。

输入描述:

一行一个字符串表示名字。

输出描述:

请分别按全小写、全大写和首字母大写的方式对name进行格式化输出(注:每种格式独占一行)。

示例1

输入:
niuNiu
输出:
niuniu
NIUNIU
Niuniu

答案

name=input()
print(name.lower())
print(name.upper())
print(name.title())

题解

"""
所有字母大写:upper()
所有字母小写:lower()
首字母大写:capitalized()
每个单词首字母大写:title()
"""
name='Hello World'
print(name.lower())
print(name.upper())
print(name.capitalize())
print(name.title())

#输出:
hello world
HELLO WORLD
Hello world
Hello World

4.格式化输出(二)

描述

牛牛、牛妹和牛可乐都是Nowcoder的用户,某天Nowcoder的管理员由于某种错误的操作导致他们的用户名的左右两边增加了一些多余的空白符(如空格或'\t'等),

现在给定他们三个当中的某一个名字name,请输出name去掉两边的空白符后的原本的内容。

输入描述:

一行一个字符串表示名字name(注:name两边带有一些多余的空白符)。

输出描述:

一行输出name去掉两边的空白符后的原本的内容。

示例1

输入:
 Niuniu 
输出:
Niuniu

答案

name=input()
print(name.strip())

题解

.strip() --- 删除两边空格
.lstrip() --- 删除左边空格
.rstrip() --- 删除右边空格
.replace(" ","") --- 删除所有空格
.split() --- 先切分,"".join() --- 再拼接
题目并未明确说明是左边还是右边有空白,用 name.strip() 要更加恰当一些
name.strip()去除左右两侧空格或特殊字符
但该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
()中为删除字符,开头或末尾包含该字符即删除
如: str = "123abcrunoob321" 
        print (str.strip( '12' ))
输出:3abcrunoob3

5.截取用户名前10位

描述

牛客网正在录入用户的昵称,但是有的昵称太长了,对于这些过长的昵称,牛牛觉得截取昵称字符串前10个字符就可以了,你可以帮他写一个程序吗?

输入描述:

输入一个字符串,长度一定不低于10。

输出描述:

输出截取前10个字符后的子串。

示例1

输入:
NiuNiuisBest
输出:
NiuNiuisBe

答案

str=input()
if len(str)>=10:
    print(str[0:10])

题解

方法一:
a = input()
if len(a) >= 10:
    print(a[0:10])

方法二:
print(input()[0:10])

方法三:
str = input()
for i in range(10):
    print (str[i],end='')

方法四:
str1 = input()
print('%.10s'%str1)

方法五:
a=input()
b=''
n=0
for i in a:
    b=b+i
    n+=1
    if n>=10:
        break
print(b)

方法六(slice函数法):
str1=input()
print(str1[slice(10)])

方法七:
str = input()
if len(str) < 10 :
    exit(0)
print(str[0:10])

方法八:
a=input('')
b=[]
for i in range(10):
    b.append(a[i])
 
s=''.join(b)
print(s)

方法九:
a=str(input())
while len(a)>=10:
    print(a[0:10])
    break

6.朋友的年龄和

描述

牛牛在牛客网有两位最好的朋友,分别是牛妹和牛可乐。牛牛想知道他们俩都多大了,于是去询问年龄。两位通过输入年龄分别是a和b,请你输出两位朋友的年龄之和。

输入描述:

一行输入两个整数,以空格间隔。

输出描述:

直接输出a+b的结果。

示例1

输入:
20 25
输出:
45

答案

a=input()
a1,a2=map(int,a.split())
print(a1+a2)

题解

        split按空格拆分

        map映射转换为int

7.多样的选择

描述

牛牛正在编写Python代码,他有些纠结到底该选vscode还是pycharm,于是他决定投硬币决定,正面使用vscode,反面则使用pycharm。请你根据输入的01数字表示正反面,使用三元表达式if-else输出牛牛使用的哪种编译器。

输入描述:

输入一个数字0或者1,0表示硬币反面,1表示硬币正面。

输出描述:

输出vscode或者pycharm。

示例1

输入:
1
输出:
vscode

答案

coin=int(input())
chose="vscode" if coin == 1 else "pycharm"
print(chose)
"""
a=int(input())
print('pycharm') if not a else print('vscode') 
"""

题解 

三元表达式就是说 A if B else C

如果B 的判断为真,执行A的操作,为假执行C的操作。

8.牛妹的烦恼

描述

牛牛找牛妹一起去学习Python,牛可乐又找牛妹一起去学习Java,但是牛妹自己又钟情于C语言,她一时不知道该怎么选择,非常苦恼。于是牛妹想了一个办法,她们三个人掷骰子,假如牛牛的点数高于另外两个人,牛妹就去学Python;同理假如牛可乐的点数高于另外两人,牛妹就去学Java;若是二者都不是,牛妹就去学C语言。请你根据输入的三个点数,输出牛妹学了什么语言。

输入描述:

一行输入三个整数,分别表示牛牛、牛可乐、牛妹投掷的点数,以空格间隔。三个点数,任何两两不相等。

输出描述:

输出Python、Java或者C。

示例1

输入:
1 2 3
输出:
C

答案

a,b,c=map(int,input().split())

if a>b and a>c:
    print('Python')
elif b>a and b>c:
    print('Java')
else:
    print('C')
"""
x = map(int, input().split())
l = list(x)
if l[0]>l[1] and l[0]>l[2]:
    print("Python")
elif l[1]>l[0] and l[1]>l[2]:
    print("Java")
else:
    print("C")
"""

还是采用了map映射为int型,splist切片间隔分开3个数据

9.有序的列表

描述

创建一个依次包含字符串'P'、'y'、't'、'h'、'o'和'n'的列表my_list,先使用sorted函数对列表my_list进行临时排序,第一行输出排序后的完整列表,第二行输出原始的列表。再使用sort函数对列表my_list进行降序排序,第三行输出排序后完整的列表。

输入描述:

输出描述:

第一行输出临时排序后的列表;

第二行输出原始的列表;

第三行输出完成降序排序后的列表。

答案

my_list=['P','y','t','h','o','n']
a=sorted(my_list)
print(a)
print(my_list)
my_list.sort(reverse=True)
print(my_list)

题解

sort 与 sorted 区别:

  1. sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。
  2. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  1. sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)

(1)创建列表

 列表名称=[元素,元素,元素......]

(2)使用sorted函数临时排序

        新列表=sorted(旧列表名称) 

(3)输出排序后完整列表

        print(新列表)

(4)输出原始列表

        print(旧列表)

(5)使用sort函数对列表降序排序

        旧列表.sort(reverse = True)        

        sort函数用法:

        列表名.sort(reverse = False)  其中,reverse = True 降序, reverse = False 升序(默认)  

(6)输出排序后完整列表 

        print(旧列表)     

10.密码游戏

描述

牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。

破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位数字交换。

请输出牛妹破解后的密码。

输入描述:

输入一个四位数的整数。

输出描述:

输出破解后的密码,以四位数的形式。

示例1

输入:
1234
输出:
6745

#备注:
#输入不会有前置0,但是输出要保持前置0

答案

n=input()        #以字符串形式输入,例如输入1234
str1=''           
for i in n:      #此法可以依次取出字符串的每一个字符,在此以第一个数i=1为例
    i=int(i)      #字符串"1"转化为数字1
    j=(i+3)%9     #以j来表示i=1转化后的数
    str1+=str(j)  #将第一个字符串转化得来的字符重新拼接到一个新字符串上
str2=str1[2:]+str1[:2]  #切片,截取新字符串的后半段和前半段拼接成又一个新字符串,正好满足1,3互换;2,4互换
print(str2)

题解另外的写法

获取4位整数中各位的数值(更好的方法)

first = a//1000
second = (a//100)%10  
third = (a//10) % 10  
fourth = a % 10       

成果

# 获取输入的4位数字
a = int(input())

# 获取4位整数中的每一位的值
first = a//1000
second = (a//100)%10  
third = (a//10) % 10  
fourth = a % 10       

# 创建临时数组arr,存储每一位的数值
arr = [first,second,third,fourth]
# 使用for循环对每一位的数值进行“加上3再除以9的余数代替该位数字”的操作
for i in range(len(arr)):
    arr[i] = (arr[i] + 3) % 9
    
# 将第1位和第3位数字交换
arr[0],arr[2] = arr[2],arr[0]

# 将第2位和第4位数字交换
arr[1],arr[3] = arr[3],arr[1] 

# 以四位数的形式 输出破解后的密码
print(arr[0],arr[1],arr[2],arr[3],sep='') # 6745

或者

a = input()
str1= str()
for i in range(len(a)):
    str1 += str((int(a[i])+3)%9)
print(str1[2],str1[3],str1[0],str1[1],sep='')

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "130道python习题.zip"是一个包含130道Python习题目的压缩文件。这个文件可能包括若干个Python脚本文件或文本文件,在这些文件中分别包含了不同的练习题。由于题目的数量较多,这份练习题压缩文件可能对于想要提高Python编程技能的学习者或者需要参加Python编程考试的人非常有帮助。 通过这份压缩文件,学习者可以利用Python解决不同难度级别的问题,提高他们的编码能力和解决问题的能力。这些练习题可以涵盖Python语言的各个方面,包括基本的语法、数据类型、循环、条件语句、函数、文件操作等。通过实践,学习者可以更好地理解和掌握Python编程语言的各种知识点。 对于想要提高自己的编程能力的人来说,这份练习题压缩文件是一个非常宝贵的学习资源。通过完成这些题目,他们可以积累编程经验,提高自己的逻辑思维和问题解决能力。同时,这些练习题也可以用于培训机构或教育机构的Python编程课程,帮助学生掌握Python编程的基本技能和解决问题的能力。 总之,"130道python习题.zip"是一个包含了130道Python习题的压缩文件,对于想要提高Python编程技能的学习者或者需要参加Python编程考试的人来说,是一个非常有价值的资源。通过完成这些练习题,他们可以提高编程水平,增强逻辑思维和问题解决能力。 ### 回答2: "130道Python习题.zip" 是一个压缩文件,其中包含了130个Python编程练习题的集合。这些练习题旨在帮助学习和提高Python编程的技能。每个练习题都配有详细的题目描述和要求,让学习者能够逐步解决问题并提供相应的解决方案。 通过完成这些练习题,学习者能够提高对Python语法和编程概念的理解,并锻炼自己的编程能力。题目难度不断递增,从基础的语法练习到更复杂的算法和数据结构的应用。通过反复练习,学习者能够巩固自己的知识并且提高代码的效率和优雅度。 这个练习题的压缩文件是一个方便的资源,可以按照自己的进度和需求进行学习。学习者可以用任何文本编辑器打开题目,编写自己的解答,并且与提供的解决方案进行对比。 练习编程对于掌握Python及其他编程语言非常重要。通过解决这些练习题,学习者能够提高解决问题的能力和分析思维,并致力于成为一个优秀的Python程序员。 总结来说,"130道Python习题.zip"是一个提供练习编程能力和理解Python编程语言的资源。通过完成这些练习题,学习者可以提高自己的编程水平,提升对Python及编程概念的理解,培养解决问题的能力,并且成为一个更出色的Python程序员。 ### 回答3: 130道python习题.zip是一个包含了130个Python习题目的压缩文件。这些练习题目旨在帮助学习者进一步熟悉和掌握Python编程语言。 这个压缩文件中的题目类型各异,涉及了Python的各个方面,从基础的语法理解到进阶的算法和数据结构,都有涵盖。通过解决这些练习题,学习者可以提高他们的编码能力和问题解决能力,并且扩展他们对Python编程语言的理解。 解压缩该文件后,可以得到130个独立的Python文件,每个文件对应一个题目。在每个文件中,包含了问题的具体描述以及必要的输入输出示例。学习者需要仔细阅读问题描述,并编写代码来解决问题。他们可以使用任意编程编辑器来编写代码,并通过运行代码来检验答案是否正确。 通过解答这些题目,学习者将深入了解Python编程语言的许多方面,例如变量、数据类型、条件语句、循环语句、函数、文件操作、异常处理、模块和包等等。此外,这些练习题还会引导学习者思考问题的解决方法,培养逻辑思维和编程思维。完成这些练习题之后,学习者将能够在Python编程方面更加独立和自信。 总之,130道python习题.zip提供了一个丰富而全面的学习资源,适用于想要提高Python编程能力的学习者。通过解答这些题目,学习者可以加深对Python的理解,并提高编程技巧和问题解决能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值