2-1.以下程序的输出结果是:

t = 'gone with wind'
t = t[:4] + ' after ' + t[:-4]
print(t)

 

答案:A.gone after gone with

 

 

2-2.以下程序的输出结果为:

str1 = "Runoob example....wow!!!"
str2 = "exam"
print(str1.find(str2, 5))

 

答案:B.7

解析:

在这个程序中,str1 是一个字符串,包含文本 "Runoob example....wow!!!",str2 是要查找的子字符串 "exam"。print 语句调用了字符串方法 find(),并传递了两个参数:要查找的子字符串 "exam" 和一个起始位置 5。

在这个示例中,find() 方法从字符串 str1 的第 5 个字符开始查找子字符串 str2。由于子字符串 "exam" 存在于 str1 中,因此 find() 方法返回第一次出现子字符串 "exam" 的位置,即在字符串 str1 的第 7 个位置(注意字符串中的位置从 0 开始计数)。因此程序输出结果为 7。

 

 

2-3.设s="Happy New Year",则s[3:8]的值为()。

 

答案:C.'py Ne'

 

 

2-4.有url="www.sina.com.cn",表达式url.strip('www')的值是【】

 

答案:B.      .sina.com.cn

解析:strip() 方法用于从字符串的开头和结尾删除指定的字符,默认情况下删除空格字符。在这个例子中,参数 'www' 指定要从字符串 url 的开头和结尾删除的字符。因为 'www' 仅在字符串 url 的开头出现,所以 strip() 方法只会删除开头的 'www' 字符串,返回值为 ".sina.com.cn"。

 

 

2-5.print("hello,world".split(‘o’)的结果是

 

答案:C.[‘hell’,’,w’,’rld’]

 

 

2-6.字符串tstr=’television’,显示结果为vi的选项是( )。

 

答案:A.print(tstr[-6:6])

 

 

2-7.Python中“ab ”+“cd”*2的结果是( )。

 

答案:C.abcdcd

 

 

2-8.已知字符串a="python",则a[1]的值为( ).

 

答案:D."y"

 

 

2-9.x=100,y=3,x//y的值是()。

 

答案:D.33

 

 

2-10.语句x = 3==3, 5执行结束后,变量x的值为_______。

 

答案:C.(True, 5)

解析:表达式 3 == 3 的值为 True,而 , 运算符用于创建一个元组。因此,x = 3==3, 5 将创建一个包含两个元素的元组,第一个元素是 3 == 3 的值 True,第二个元素是整数 5。

因此,变量 x 的值为一个元组 (True, 5)

 

 

2-11.在Python中,下列语句非法的是( )。

 

答案:C.x=(y=z=1)

 

 

2-12.表达式"abc" in "abdcna" 的值是( )。

 

答案:B.False

 

 

2-13.表达式1234%100的值是( )。

 

答案:B.34

 

 

2-14.表达式1234%100//10的值是( )。

 

答案:C.3

 

 

2-15.给定x = 5,y = 3,z = 8,表达式 x < y or z > x的结果是( )。

 

答案:A.true

 

 

2-16.Python语言中,运算对象最好都为整数的运算符是( )。

 

答案:D(不确定)

 

 

2-17.表达式3 < 5 <2 的计算结果是:( )。

 

答案:B.False

解析:表达式 3 < 5 < 2 在 Python 中会被解释为 (3 < 5) and (5 < 2),其中 and 是逻辑与运算符。因为逻辑与运算符要求两个操作数都为 True,否则返回 False,所以这个表达式的结果为 False。

 

 

2-18.若x=-3,y=4, 则下列关系式结果为 False 的是( )。

 

答案:B.x>0 and y>0

 

 

2-19.x=2, y=3, 执行x,y=y,x之后,x,y的值分别是( )。

 

答案:B.3,2

 

 

2-20.执行 s = input(),在键盘上输入3,以下哪条语句能正确输出12?()

 

答案:D.print(eval(s)*4)

 

 

 


4-1.表达式 ':'.join('abcdefg'.split('cd'))的值为_____。

 

答案:ab:efg

解析:首先,'abcdefg'.split('cd') 将会返回一个列表,其中包含所有按照子字符串 'cd' 分割后的子字符串。在这种情况下,列表为 ['ab', 'efg']。

然后,使用 ':' 连接列表中的所有字符串,即可得到结果。在 Python 中,可以使用字符串的 join() 方法来实现这一点。因此,表达式 ':'.join('abcdefg'.split('cd')) 的值为 'ab:efg'。

 

 

4-2.字符串的upper()函数(高教社《Python编程基础及应用》习题2-2)


写出下述程序的执行结果。

sName1 = "john miller"
print("1:",sName1.upper())
print("2:",sName1)

执行结果第1行:

执行结果第2行:

 

提示:print( )函数会自动在每个输出参数之间加上一个空格。

 

答案:1: JOHN MILLER
2: john miller

 

 

4-3.print("{:>08s}".format(bin(31)[2:]))的输出是

 

答案:00011111

解析:在这个表达式中,bin(31) 返回整数 31 的二进制表示形式字符串,即 '0b11111'。

然后,使用字符串的 format() 方法,使用 {:>08s} 格式说明符将字符串右对齐并填充 0,使其总宽度为 8 个字符。

因此,"{:>08s}".format(bin(31)[2:]) 的输出结果为字符串 '00011111'。

因此,print("{:>08s}".format(bin(31)[2:])) 的输出是 '00011111'。

 

 

4-4.join()函数连接字符串(高教社,《Python编程基础及应用》习题10-1)


请写出下述程序的执行结果:

s = [str(x) for x in range(2,35,7)]
print(",".join(s))

执行结果为:

 

答案:2,9,16,23,30

 

 

4-5."a7a8a9".replace("a", "A")的值是

 

答案:A7A8A9

 

 

4-6.'23'*3的结果是   (答案不要加引号)

 

答案:232323

 

 

4-7.print("{1}+{0}={2}".format(2,3,2+3))的输出是   (答案不要加引号)

 

答案:3+2=5

 

 

4-8.print("a123".isdigit())的输出是  (字母大小写敏感)

 

答案:False

解析:"a123" 是一个包含字母和数字的字符串,而 isdigit() 方法用于判断字符串是否只包含数字字符。因此,"a123".isdigit() 的返回值为 False

 

 

4-9.Python 语句 print(hex(16), bin(10))的输出结果是(进制用小写字母表示)

 

答案:0x10 0b1010

解析:

hex(16) 返回十六进制数 16 的字符串表示形式,即 '0x10',其中 '0x' 表示这是一个十六进制数的标识。

bin(10) 返回十进制数 10 的二进制表示形式的字符串,即 '0b1010',其中 '0b' 表示这是一个二进制数的标识。

因此,print(hex(16), bin(10)) 的输出结果为 0x10 0b1010

 

 

4-10.Python 表达式 3**2**3 的值为

 

答案:6561

 

 

 

 


7-1 计算有n个字符串中最长的字符串长度

编写程序,用于计算有n(1<n<10)个字符串中最长的字符串的长度。前导空格不要计算在内!

输入格式:

在第一行中输入n,接下的每行输入一个字符串

输出格式:

在一行中输出最长的字符串的长度

输入样例:

在这里给出一组输入。例如:

4    
        blue
yellow
red
green
 
 

输出样例:

在这里给出相应的输出。例如:

length=6

 

代码示例

n = int(input())
max_length = 0
for i in range(n):
s = input().lstrip()
if len(s) > max_length:
max_length = len(s)

print("length={}".format(max_length))

 

 

 

 


7-2 转换函数使用

输入一个整数和进制,转换成十进制输出

输入格式:

在一行输入整数和进制

输出格式:

在一行十进制输出结果

输入样例:

在这里给出一组输入。例如:

45,8
 

输出样例:

在这里给出相应的输出。例如:

37

 

代码示例

s, base = input().split(',')
s = s.strip()
base = int(base.strip())
n = int(s, base)
print(n)

 

 


7-3 平方根格式化

要求:
获得用户输入的一个整数a,计算a的平方根,保留小数点后3位, 并打印输出。
输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充,结果如果超过30个字符,则以结果宽度为准。

输入输出示例:

PTA-python第三次作业答案及解析

输入样例

10
 

输出样例

+++++++++++++++++++++++++3.162

 

代码示例

a = int(input())
sqrt = pow(a,0.5)
print("{:+>30.3f}".format(sqrt))

 

 


7-4 号码牌的制作

打印一个号码牌。号码牌由边框和号码构成,组成边框的字符分为角落字符,水平字符和垂直字符。

输入格式:

输入一个字符(如:+-|2008161876)串,字符串的前三个字符分别代表组成边框的角落字符,水平字符和垂直字符,从第四个字符开始到最后表示号码数字。

输出格式:

打印出由边框包围的号码。如:

PTA-python第三次作业答案及解析

输入样例:

在这里给出一组输入。例如:

#=$2020
 

输出样例:

在这里给出相应的输出。例如:

#====#
$2020$
#====#
 

输入样例:

在这里给出一组输入。例如:

+-*20191234
 

输出样例:

在这里给出相应的输出。例如:

+--------+
*20191234*
+--------+

 

代码示例

s = input()
corner = s[0]
hor = s[1]
ver = s[2]
num = s[3:]

num_width = len(num)
num_height = 1

num_row = num

hor_row = corner + hor * num_width + corner

result = hor_row+"\n"+ver + num_row + ver+"\n"+hor_row

print(result)

 

 

 


7-5 重复打印

要求重复打印字符或文字

输入格式:

如输入“x个y”

输出格式:

重复打印y字符,次数为x次

输入样例:

在这里给出一组输入。例如:

3个A
 

输出样例:

在这里给出相应的输出。例如:

AAA
 

输入样例:

在这里给出一组输入。例如:

5个人
 

输出样例:

在这里给出相应的输出。例如:

人人人人人

 

代码示例

x,y=input().split("个")
x=int(x)
for i in range(x):
    print(y,end='')

 

 


7-6 交换两实数的整数部分

输入两个实数,将其整数部分交换后输出,结果保留2位小数。

输入格式:

输入2个实数A和B。

输出格式:

输出交换整数部分之后的两个实数。数据之间以一个“,”分隔。

输入样例:

23.45 54.22
 

输出样例:

54.45,23.22

 

代码示例

a, b = map(float, input().split())
a_str, b_str = str(a), str(b)

a_int, a_decimal = a_str.split('.')
b_int, b_decimal = b_str.split('.')

a_int, b_int = b_int, a_int

new_a = float(a_int + '.' + a_decimal)
new_b = float(b_int + '.' + b_decimal)

print("{:.2f},{:.2f}".format(new_a, new_b))

 

 

 


7-7 三角形判定

给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。

输入格式:

一行包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。

输出格式:

如果能构成三角形,则输出“yes” ,否则输出“no”。

输入样例:

样例1

3 4 5
 

样例2

3 3 6
 

输出样例:

样例1

yes
 

样例2

no

 

代码示例

a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
print('yes')
else:
print('no')

 

 

 


7-8 词组缩写

定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。 WHO就是World Health Organization的缩写。

输入格式:

测试数据占一行,有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成; 单词长度不超过10,由一个或多个空格分隔这些单词。

输出格式:

输出规定的缩写

输入样例:

World Health Organization
 

输出样例:

WHO

 

代码示例

s = input().split()
ans = ''
for word in s:
    ans += word[0].upper()
print(ans)

 

 


7-9 身份证号判断性别与出生日期

早期中国的居民身份证由15位数字后来组成。国务院决定自1999年10月1日起公民身份证号码由15位升至18位。

15位居民身份证号码是由15位得数字组成,排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码(年份月份日期都是两位),三位数字顺序码。三位数字顺序码男性使用1、3、5、7、9等奇数,女性使用2、4、6、8、0等偶数。
18位居民身份证号码排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码(男性使用1、3、5、7、9等奇数,女性使用2、4、6、8、0等偶数)和一位数字校验码。

身份证号码可以用正则表达式判断是否合法,也可以用字符串判断来判断。

从键盘输入一串15位 或18位的字符串。
首先判断该字符串中表示日期的字符串是否符合日期字符串,若不符合则给出提示。
例如 输入:3501021990229403X, 则输出:Error,日期不合法

若日期合法则认为该字符符合中国的居民身份证编码(本题假设除了日期有可能输错,其他不会输错)

若输入字符是15位符合中国的居民身份证编码,则输出性别 与 以类似于“1990年10月01日”的形式的出生日期。

例如:输入350102901001402,则输出:女,1990年10月01日

若输入字符是18位符合中国的居民身份证编码,则输出性别 与 以类似于“2000年10月01日”的形式的出生日期。

例如:输入35010220001001403X,则输出:男,2000年10月01日

{特别备注说明:本题考核点为字符串应用,在测试样例中给出否让身份证号码只符合上述规则,没有判断区号与验证码是否有意义,未经过身份证验证接口API(公安部实时接口)验证}

输入格式:

键盘读入一串字符串

输出格式:

输出相应的结果

输入样例1:

在这里给出一组输入。例如:

35010219990229401X
 

输出样例1:

在这里给出相应的输出。例如:

Error,日期不合法
 

输入样例2:

在这里给出一组输入。例如:

350102901001412
 

输出样例2:

在这里给出相应的输出。例如:

女,1990年10月01日
 

输入样例3:

在这里给出一组输入。例如:

35010220001001403X
 

输出样例3:

在这里给出相应的输出。例如:

男,2000年10月01日

 

代码示例

str =input()
l = len(str)
def 性别(str):
if l == 15:
str = int(str[-1])
if l == 18:
str = int(str[-2])
if str in [1,3,5,7,9]:
sex = '男'
else:
sex = '女'
return sex

def 日期合法性(n,y,r):
month = [0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if(y<=0 or y>12 or r<=0 or r>31):
return 0
elif(n%4 == 0 and n%100 != 0 or n%400==0):
month[2] += 1
return r <= month[y]

def 提取日期(str,l):
global tem,n,y,r
if l == 15:
str = str[6:12]
n = "19"+str[0:2]
y = str[2:4]
r = str[4:6]
tem = "{0}年{1}月{2}日".format(n, y, r)
n = int(n);y = int(y);r = int(r)
if l == 18:
str = str[6:14]
n = str[0:4]
y = str[4:6]
r = str[6:8]
tem = "{0}年{1}月{2}日".format(n, y, r)
n = int(n);y = int(y);r = int(r)

def 身份(str,l):
提取日期(str, l)
if 日期合法性(n,y,r):
print(性别(str),tem,sep=',')
else:
print("Error,日期不合法")

身份(str,l)

 

 

 

 


7-10 时间转换输出

输入一个以秒为单位的整数,转换为小时、分和秒输出。输出格式见样例。(以24小时制显示)

输入格式:

输入一个整数。

输出格式:

输出小时 :分 :秒,各部分输出之间有一个空格

输入样例:

在这里给出一组输入。例如:

11730
 

输出样例:

在这里给出相应的输出。例如:

3 : 15 : 30

 

代码示例

a = int(input())
h = (a//3600)%24
m = (a%3600)//60
s = a%3600%60
print("%d : %d : %d"%(h,m,s))