PTA——python运算数学表达式、字符串中提取学号 abcd(19)、句子首字母变大写

python运算数学表达式

本题目要求读入2个整数A和B,然后按下面的式子输出C的值。
在这里插入图片描述
请充分考虑A、B输入可能出现的情况。

输入格式:
输入在一行中给出2个整数A和B。

输出格式:
对每一组输入,在一行中输出C的值,保留二位小数。
若B输入了0,输入提示“分母不能为0”
若输入有误,给出输出“输入有误!”

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

18 -299

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

-876.72

解答

  1. 使用split()函数,对在同一行数据进行分割,默认为按空格进行分割;使用map()函数,将分割后的字符串赋值给对应变量x,y;
  2. 判断x,y变量是否符合数字规律,即对x,y分别使用for循环,观察每一位的字符情况;
  3. 最后将x,y转化为整数类型,判断分母是否为零,为零直接输出;不为零则带入表达式计算输出结果。

代码如下

x, y = map(str, input().split())
for i in range(len(x)):
    if x[i] == '-':
        if i != 0 or len(x) == 1:
            print("输入有误!")
            exit(0)
        continue
    elif '0' <= x[i] <= '9':
        continue
    else:
        print("输入有误!")
        exit(0)
for j in range(len(y)):
    if y[j] == '-':
        if j != 0 or len(y) == 1:
            print("输入有误!")
            exit(0)
        continue
    if '0' <= y[j] <= '9':
        continue
    else:
        print("输入有误!")
        exit(0)
x = int(x)
y = int(y)
if(y==0):
    print("分母不能为0")
else:
    c = (2 ** x + 7 - 3 * 4) / y
    print("%.2f" % c)

字符串中提取学号 abcd(19)

题目

一个字符串中有一个或者两个数字字符表示学生的学号,现在需要你把学号提取出来,正常来说,学号在一对()之间。
但是存在一些不规范的输入,比如abcd(19dk),学号应该是19。(后是一个数字,否则非法,返回not find。只有一个0是一个非法学号,输出not find。

输入格式:
abcd(19)

输出格式:
19

输入样例:

ydsf(00)
abc(08)

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

not find
8

代码

x = str(input())
left = 0
right = 0
for i in x:
    if (i == '('):
        left += 1
    if (i == ')'):
        right += 1
if ((left != 1) | (right != 1)):
    print("not find")
    exit(0)
x = x.split('(')
x = x[1]
x = x.split(')')
x = x[0]
x = x[0:2]
m = int(0)
if (x == ''):
    print("not find")
    exit(0)
if (len(x) == 1):
    if (x[0] == '0'):
        print("not find")
        exit(0)
    if ((x[0] > '0') & (x[0] <= '9')):
        m = int(x[0])
        print(m)
        exit(0)
if (x == "00"):
    print("not find")
    exit(0)
if ((x[0] >= '0') & (x[0] <= '9')):
    if ((x[1] < '0') | (x[1] > '9')):
        m = int(x[0])
        print(m)
        exit(0)
if ((x[0] >= '0') & (x[0] <= '9')):
    if ((x[1] >= '0') & (x[1] <= '9')):
        m = int(x[0]) * 10 + int(x[1])
        print(m)
        exit(0)
print("not find")

句子首字母变大写

题目

输入一行句子,将每个句子的首字母变为大写。每个单词之间都有空格,每个句子以?或.或!结尾。

输入格式:
输入一段字符串

输出格式:
将句子的首字母变大写输出字符串

输入样例:

you are a sight sore eyes! you look well.

输出样例:

You are a sight sore eyes! You look well. 

代码

x = str(input())
flag = 1
m = ''
for i in x:
    if ((i >= 'A') & (i <= 'Z')):
        flag = 0
    if (flag == 1):
        if ((i >= 'a') & (i <= 'z')):
            i = i.upper()
            flag = 0
    if (i == '.'):
        flag = 1
    if (i == '!'):
        flag = 1
    if (i == '?'):
        flag = 1
    m += i
m += ' '
print(m)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
题目未给出具体的输入格式,可以假设输入的字符串由用户输入,可以通过命令行参数或者标准输入的方式获取。 假设题目给出的字符串为str,我们可以通过遍历字符串的每个字符,判断其是小写字母、大写字母、数字还是空格,从而统计个数。可以定义四个量,分别来统计对应的个数,初始值为0。遍历字符串的每个字符,根据字符的ASCII码判断字符的类型,并对应更新对应的个数量。 以下是一个示例代码: ```python str = input("请输入字符串:") # 获取输入的字符串 lower_count = 0 # 统计小写字母个数 upper_count = 0 # 统计大写字母个数 digit_count = 0 # 统计数字个数 space_count = 0 # 统计空格个数 for char in str: if char.islower(): # 判断是否为小写字母 lower_count += 1 elif char.isupper(): # 判断是否为大写字母 upper_count += 1 elif char.isdigit(): # 判断是否为数字 digit_count += 1 elif char.isspace(): # 判断是否为空格 space_count += 1 print("小写字母个数:", lower_count) print("大写字母个数:", upper_count) print("数字个数:", digit_count) print("空格个数:", space_count) ``` 以上代码,通过遍历输入的字符串,对每个字符进行判断,统计对应的个数,最后输出结果。根据题目需求,可以在每个统计量输出前添加相应的提示信息。当然,根据实际情况可以适当修改代码以适应不同的输入方式或输出格式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liquor...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值