目录
6.使用字符串的索引和切片知识输入月份数字,输出英文月份缩写
一、判断题
1.F
中文占一个字符,具体原理不详。
2.F
字符串切片。表示从0到最后一个字符为止,左闭右开区间。
输出不包括最后一个字符
3.F
若字符串含有多个连续的空格,结果会有空元素。
4.F
字符串相加,为“43”。
5.T
下标为5的元素为空格。
6.F
Python中变量以指针的形式存在,不需要考虑内存超出。
7.T
8.T
引号形式 | 用法 |
---|---|
单引号 | 使用单引号,双引号课视为普通字符 |
双引号 | 使用双引号,单引号课视为普通字符 |
三引号 | 三引号可多行输入,不需要\n。 撰写文档字符串。 |
一行太长,切割成多行,两种方法:
9.T
10.F
字符串加法为字符串连接,字符串乘法为重复字符串。
11.T
12.T
字符串不能与数值型数据相加。
13.F
字符串和元组属于不可变有序序列,不能修改。
14.T
15.F
修改后的程序:
16.F
sort函数只能对列表排序。
17.T
18.F
s1中:每个元素后都跟着空格。
s2中:join函数只能将分隔符插在元素中间。
s1比s2末尾多一个空格。
19.T
20.F
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:-.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:>10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | '{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) | 1011 11 13 b 0xb 0XB | 进制 |
注:居中的1234后面有两个空格。
21. F
22.F
23.F
字符串的索引从0开始,因此第一个字符的索引为0,第二个字符的索引为1,依此类推。
24.F
25.T
26.F
27.F
28.T
tuple(x):可以用于生成元组,输入的参数可以是任何组合数据类型。
29.T
元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。
30.F
创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,),消除歧义。
31.F
32.F
x是元组不可变,x[0]为列表,可变。
二、单选题
DDBBC
BCCAD
DBDCB
CBBDC
三、填空题
1.0
浮点数参与整除,结果也为浮点数
四、编程题
1.求出歌手的得分
n=int(input())
score=list(map(int,input().split()))
score=sorted(score)
sum=0
l=len(score)-2
for i in range(2,l):
sum+=score[i]
print('aver={:.2f}'.format(sum/(len(score)-4)))
2.输出字母在字符串中位置索引
str1=input()
str2=input().split()
num=len(str1)-1
str1=str1[::-1]
for i in str1:
if i in str2:
print(str(num)+' '+i)
num-=1
3.汉字表示的大写数字金额
s=input()
str1=['0','1','2','3','4','5','6','7','8','9']
str2=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']
dic=dict(zip(str1,str2))
s=s[::-1]
for i in range(len(s)-1,-1,-1):
print(dic[s[i]],end='')
if i==8:
print('亿',end='')
elif i==4:
print('万',end='')
elif i==11 or i==7 or i==3:
print('仟',end='')
elif i==10 or i==6 or i==2:
print('佰',end='')
elif i==9 or i==5 or i==1:
print('拾',end='')
print('圆',end='')
4.输出元组内指定值
x=map(int,input().split())
x=tuple(x)
for i in x:
if i%7==0 or i%10==7:
print(i)
5.字符替换
import string
str1=string.ascii_uppercase
str2=str1[::-1]
dic=dict(zip(str1,str2))
x=input()
for i in x:
if i in str1:
print(dic[i],end='')
else:
print(i,end='')
6.使用字符串的索引和切片知识输入月份数字,输出英文月份缩写
month=int(input())
if month==1:
print('Jan')
elif month==2:
print('Feb')
elif month==3:
print('Mar')
elif month == 4:
print('Apr')
elif month == 5:
print('May')
elif month==6:
print('Jun')
elif month==7:
print('Jul')
elif month == 8:
print('Aug')
elif month == 9:
print('Sep')
elif month==10:
print('Oct')
elif month==11:
print('Nov')
elif month ==12:
print('Dec')
7.jmu-python-凯撒密码加密算法
x=input()
n=int(input())
for i in x:
if i.isupper():
y=(ord(i)-65+n)%26+65
print(chr(y),end='')
elif i.islower():
y=(ord(i)-97+n)%26+97
print(chr(y),end='')
else:
print(i,end='')
8.特定数之和
n=int(input())
sum=0
for i in range(1,n+1):
x=str(i)
if '2' in x:
sum+=i
elif '0'in x:
sum+=i
elif '1'in x:
sum+=i
elif '9'in x:
sum+=i
print(sum)
转成字符串会比算每一位的数更简单一些。
9.缩写期刊名
t=int(input())
for i in range(t):
x=input()
x=x.lower()
line=x.split()
l=len(line)
for j in line:
if len(j)>4:
s=[p for p in j]
for k in range(4):
print(j[k],end='')
print('.',end='')
if len(j)<=4:
print(j,end='')
if l>1:
print(' ',end='')
else:
print()
l-=1
10.统计输入字符串中的单词个数及单词的平均长度
x=input().split()
l=len(x)
s=0
for i in x:
s+=len(i)
print('%d,%.2f'%(l,s/l))
11.jmu-python-输入输出-格式化输出字符串
a=float(input())
b=int(input())
c=input()
c=str.strip(c)
print('%.2f'%a)
print('{0:e} {0:E} {0:.2%}'.format(a))
print('{0:b} {0:x}'.format(b))
print(c.upper())
print('{:>20s}'.format(c))
print('{:*^20s}'.format(c))
print('{} + {} = {}'.format(a,b,a+b))
strip函数:
str.strip() 去除字符串两边的空格
str.lstrip() 去除字符串左边的空格
str.rstrip() 去除字符串右边的空格
注:此处的空格包含'\n', '\r', '\t', ' '
center函数:
str.center(width , "fillchar")返回长度为width,两边用fillchar填充的字符串
E/e 大小写字母e的指数形式
% 百分数形式
s 字符串形式
12.计算有n个字符串中最长的字符串长度
n=int(input())
max=0
for i in range(n):
x=input().strip()
if len(x)>max:
max=len(x)
print('length=%d'%max)
13.统计单词的个数
x=input().split()
print('count = %d'%len(x))
14.输出10个不重复的英文字母
x=input()
#将字母整合到字符串y
y=''
for i in x:
if i.isalpha():
y+=i
#x为y的集合,可以去除掉重复的字母(此时区分大小写)
x=set(list(y))
#若集合的长度小于10,不重复字母的个数肯定小于10
if len(x)<10:
print('not found')
#若集合长度大于10
else:
z=''#收集已经判定的字母的大小写
ans=''#保存结果(不区分大小写,T和t算重复)
for i in y:
#当z中存在了i的字母,跳过
if i in z:
continue
if i in x:
# 结果中保存字母i
ans+=i
#z中保存i的大小写
z+=i.lower()
z+=i.upper()
#如果结果元素个数小于10
if len(ans)<10:
print('not found')
else:
print(ans)
由于出现了T,就不能出现t。所以用字符串z来判断,遇到不重复字符时,加上该字符的大小写。
15.判断两个字符串是否为变位词
import copy
str1=input().split()
str2=input().split()
s1=''
s2=''
for i in str1:
s1+=i
for i in str2:
s2+=i
if len(s1)!=len(s2):
print('no')
else:
s1=list(s1)
s2=list(s2)
for i in s1:
if i in s2:
s2.remove(i)
s2=copy.deepcopy(s2)
if len(s2)!=0:
print('no')
else:
print('yes')
运用了深度复制来刷新remove函数的指针,否则会跳过后面一个元素。