Python入门——练习题一

在此用来复习老师布置的PTA题目,以此记录。

一、PTA题目集

1、统计单词的个数

输入格式:

在一行中输入字符

输出格式:

在一行中输出单词的数量

输入样例:

Let's go to room 209

输出样例:

count = 5

代码样例

nub=input().split()    #将输入的语句按空格分隔开

count=0;
for i in nub:
    count=count+1
print("count = {}".format(count))

总结

(1)split

通过指定分隔符对字符串进行切片,并返回分割后的字符串列表;默认以空格分割,string.split('.')以.分割,string.split(',')以,分割;

(2)for循环

按照in后面每一段以空格隔开之后的语句进行

(3)format语句

通常与print语句一起进行,{}在print语句的“”双引号或''单引号中中;

表示这个位置预定,要写代码中变量的值,双引号的后面接 . 点,用format表示要进行放进去的变量;

精度表示:

如果精度有规定,就在{}里面写,例如{:.2f},保留两位小数

指定位置书写:

list1 = ['1','2']

list2 = ['3','4']

print(' {0[1]}{1[1]} {0[0]} to {1[0]}'.format(list1,list2))

#format括号里面也是按照类似数组的形式进行

#{0}表示format里面的第一个值,{0[1]}表示第一个位置中列表第一个值

#显示:2413

 百分比格式:

'{:.2%}'.format(0.1234)

 '12.34%'

 直接写:

print(f"名字是:{name},整数是:{n}")   #用print语句输出时,直接在{}中写变量的值

 2、多说几遍我爱你

 母亲节到啦,张大宝想对妈妈说好多遍“妈妈我爱你我爱你我爱你”,可是二宝不愿意了,要求大宝也对她说好多遍我爱你,你能帮大宝编写这样的程序么?。

输入格式:

在一行内输入:一个名字name和一个整数n,中间以空格隔开。

输出格式:

在一行内输出:name,n遍我爱你

输入样例:

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

妈妈  5

输出样例:

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

妈妈我爱你我爱你我爱你我爱你我爱你

 代码1

s1,s2=input().split()


s2=int(s2)   #强制转换噢噢噢噢一定不能错噢噢噢噢  不是s2=(int)s2
# print(s1)
# for i in range(s2):
#     print('我爱你')
print(s1+"我爱你"*s2)
#直接写,print里面可以进行符号运算

代码2

 s1,s2=input().split()
s2=int(s2)#强制转换噢噢噢噢一定不能错噢噢噢噢
print(s1,end="")        #print后面默认是加一个换行符,不要换行符时用end参数指定结束符
for i in range(s2):
    print('我爱你',end="")

总结

(1)for语句用法

在python中,它允许你遍历任何序列(如列表、元组或字符串)或其他可迭代对象(如字典的键、集合、文件对象等)

for 变量 in 可迭代对象:

               # 循环体

               # 执行语句

这里,变量在每次循环迭代时会被赋予可迭代对象中的下一个元素的值,直到遍历完所有元素。 

遍历列表

举个例子,比如:

fruits = ['apple', 'banana', 'cherry']  
for fruit in fruits:  
    print(fruit)

输出结果是:

apple  
banana  
cherry
遍历字符串
s = "hello"  
for t in s:  
    print(t)

输出结果:

h  
e  
l  
l  
o
 遍历字典的键
person = {'name': 'John', 'age': 30, 'city': 'New York'}  
for key in person:  
    print(key)

输出结果:

name  
age  
city
遍历字典的键和值
for key, value in person.items():  
    print(key, value)

 输出结果:

name John  
age 30  
city New York
使用range()函数

range()函数生成一个数字序列,常用于for循环中

for i in range(5):  # 默认从0开始,到5结束(不包括5),步长为1  
    print(i)

输出结果:

0  
1  
2  
3  
4

 指定起始值、结束值和步长:

for i in range(1, 6, 2):  # 从1开始,到6结束(不包括6),步长为2  
    print(i)

输出结果:

1  
3  
5
嵌套for循环 

for循环可以嵌套使用,即在一个for循环的循环体内部再使用一个或多个for循环。

for i in range(3):  
    for j in range(3):  
        print(f"({i}, {j})")
 注意:

       for语句in后面的语句如果不添加range:表示在in后面的语句中一个个打印出来,此时print括号里面只能是in之前的变量

     for语句in后面的语句添加range时:表示一个次数n,print条件里面可以打任意语句,这个次数会被循环打印n遍

(2)print用法
第一种用法:直接输出

在python中,print每个语句后面默认加一个换行符;

print("Hello, Python!")

屏幕上显示:

Hello, Python!
第二种:打印多个值

你可以一次性打印多个值,这些值之间默认用空格分隔

print("Hello", "Python", "!")

屏幕上显示:

Hello Python !

当然,还可以使用 sep 参数来指定多个值之间的分隔符 

print("Hello", "Python", "!", sep="-")

屏幕上显示:

Hello-Python-!
 第三种:格式化输出

格式化输出时,有% 操作符(旧式)和 .format()  f-string(Python 3.6+)

使用 % 操作符

name="Bob"
age=17
print("My name is %s and I am %d years old."%(name,age))

屏幕显示:

My name is Bob and I am 17 years old.

使用 .format() 方法

name = "Bob"  
age = 25  
print("My name is {} and I am {} years old.".format(name, age))

屏幕显示:

My name is Bob and I am 17 years old.

使用 f-string(Python 3.6+)

name = "Bob"  
age = 17
print(f"My name is {name} and I am {age} years old.")

屏幕显示:

My name is Bob and I am 17 years old.

第四种:不换行打印

默认情况下,print() 函数会在输出结束后添加一个换行符。如果不想换行,可以使用 end 参数来指定结束符,比如设置为空字符串 ""

print("Hello,", end="")  
print("Python!")

屏幕显示:

Hello,Python!

3、求圆周长和面积

已知一个圆的半径,计算该圆的周长和面积,结果保留2位小数。半径用实数表示,由键盘输入。设圆周率等于3.14159。

输入格式:

输入在一行中给出1个实数r,表示圆的半径。

输出格式:

在一行中输出圆的周长和面积,结果保留2位小数。数据之间留一个空格。

输入样例:

3

输出样例:

18.85 28.27

代码1

r=float(input())
pi=3.14159
zhou=2*pi*r
mian=pi*r*r

#以下print显示选择其中一个即可
print("{0:.2f} {1:.2f}".format(zhou,mian))
#或者
print("{:.2f} {:.2f}".format(zhou,mian))

#中间可以加空格也可以加字符串等等,只是代表{}里面的数值按某种格式显示

代码2

r=float(input())
pi=3.14159
zhou=2*pi*r
mian=pi*r*r
print(f"{zhou:.2f} {mian:.2f}")   
#中间可以加空格也可以加字符串等等,只是代表{}里面的数值按某种格式显示

屏幕显示:

2
12.57 12.57

总结

 print打印时,不论是以f格式还是format格式,“”双引号里面都可以写字符及其他类型的内容,只是说用{}括起来的里面以某种格式限制而已

4、重要的事情说N遍

对重要的事情,阿福老师会反复说N多遍。
提示:用字符串 * 和 +

输入格式:

输入包含2行,第一行是阿福要重复说多遍的一句话,也就是阿福想强调的重要事情;第2行为一个整数N(0<N<10)

输出格式:

将阿福要强调的重要事情,反复输出N遍,具体格式参见样例。

输入样例:

Go
3

输出样例:

Go!Go!Go!

代码:

s=input()
n=int(input())
print((s+'!')*n)

屏幕显示:

Go!Go!Go!

总结:

print里面可以用双括号

5、统计输入字符串中的单词个数及单词的平均长度

编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度。

输入格式:

单词1 单词2 .... 单词n

输出格式:

单词个数,单词平均长度(保留两位小数)

输入样例:

aaa bbb ccccccccccc

输出样例:

3,5.67

代码 

s=input().split()
count=len(s)
sum=0
for i in s:
    sum=sum+len(i)
avg=float(sum/count)
print(f"{len(s)},{avg:.2f}")

屏幕显示:

3,5.67

总结

len的用法:用来获得容器中元素的数量

这里的“容器”可以是字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)、范围对象(range)等任何可迭代对象。len() 函数返回的是一个整数,表示容器中元素的数量

# 字符串  
s = "hello"  
print(len(s))  # 输出: 5  
  
# 列表  
l = [1, 2, 3, 4, 5]  
print(len(l))  # 输出: 5  
  
# 元组  
t = (1, 2, 3)  
print(len(t))  # 输出: 3  
  
# 字典  
d = {'a': 1, 'b': 2, 'c': 3}  
print(len(d))  # 输出: 3  
  
# 集合  
set_example = {1, 2, 3, 4}  
print(len(set_example))  # 输出: 4  
  
# 范围对象  
r = range(10)  
print(len(r))  # 输出: 10

6、橡皮泥

将两块球形橡皮泥揉在一起,捏成一个正方体。请编程,完成下述功能:

  1. 从键盘读入第1个球形橡皮泥的直径,该直径为浮点数;
  2. 从键盘读入第2个球形橡皮泥的直径,该直径仍为浮点数;
  3. 求正方体的边长,并保留两位小数输出;

输入格式:

第一个球的直径

第二个球的直径

输出格式:

请参考输出样例。

输入样例:

3.2
5.553

输出样例:

正方体边长为:4.74.

提示:圆球的体积 V = 4/3 * π r3

代码

import math
a1=float(input())
a2=float(input())
# pi=3.14159
v1=(4/3)*math.pi*((a1/2)**3)
v2=(4/3)*math.pi*((a2/2)**3)
V=v1+v2
l=pow(V,1/3)
print(f"正方体边长为:{l:.2f}.")

屏幕显示:

正方体边长为:4.74.

总结

pow的用法:在Python中,pow() 函数用于计算一个数的幂,即一个数的指数次幂。

# 计算2的3次方  
result = pow(2, 3)  
print(result)  # 输出: 8

这个函数可以接受两个或三个参数,其基本语法如下:

pow(x, y[, z])
  • x:基数(底数)。
  • y:指数。
  • z(可选):模数。如果提供了这个参数,函数会计算 (x**y) % z,这在某些算法中非常有用,比如计算大数的幂模运算时,可以避免直接计算大数幂可能导致的溢出问题。

使用模数举例

# 计算(2**10) % 3  
result = pow(2, 10, 3)  
print(result)  # 输出: 1

7、计算 21+22+23+...+m

输入一个正整数m(30<=m<=100),计算表达式 21+22+23+...+m 的值。

输入格式:

在一行输入一个正整数m

输出格式:

在一行中按照格式“sum = S”输出对应的和S

输入样例:

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

90

输出样例:

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

sum = 3885

代码 

n=int(input())
sum=0
for i in range(21,n+1):
    sum=sum+i
print(f"sum = {sum}")

 打印换成这两种也可以:

print("sum = {}".format(sum))
print("sum = %d" %(sum))

屏幕显示:

sum = 3885

总结

  • for语句中是把in后面的值赋值到前面的i中
  • print中除了f之外的其他两种打印方法
上一篇:windows环境Python开发环境搭建指南(附实例源码和讲解教程)


下一篇:react crash course 2024(5) useState钩子