Python习题进阶

1.十六进制数字的大小

描述

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

输入描述:

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

输出描述:

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

示例1

输入:
A
复制输出:
10

答案

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

题解

这里主要是int在强制转换的用法(变量a的引号无论写于不写,不妨碍答案的正确性)Python习题进阶_第1张图片

 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') 
"""

题解 

Python习题进阶_第2张图片

三元表达式就是说 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个数据

你可能感兴趣的:(Python习题进阶,python,开发语言)