Python语言程序设计【第一周】

记录北京理工大学mooc Python语言程序设计的一些题目

练习题

首先说明一些字符串的用法


print(str)  # 输出字符串
print(str[0:-1])  # 输出第一个到倒数第二个的所有字符
print(str[0])  # 输出字符串第一个字符
print(str[2:5])  # 输出从第三个开始到第五个的字符
print(str[2:])  # 输出从第三个开始后的所有字符
print(str[1:5:2])  # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str * 2)  # 输出字符串两次
print(str + '你好')  # 连接字符串

练习一 温度转换Ⅰ


Tempstr=input('请输入带符号的温度值\n')
if Tempstr[-1]in['F','f']: 
    C=(eval(Tempstr[0:-1])-32)/1.8
    print('{:.2f}C'.format(C))
elif Tempstr[-1]in['C','c']:
    F = 1.8*eval(Tempstr[0:-1])+32
    print('{:.2f}F'.format(F))
else:
    print('输入格式错误')

Tempstr[0:-1] 指 除最后一个字符之外的字符串

Tempstr[-1] 最后一个字符

Tempstr[0] 第一个字符

如 123C → 123

采用{:.2f}将输出数字变成两位小数点表示时,即使数学上该输出值是整数,也会按照小数方式输出,例如,转换后温度为10度,输出为10.00;

练习三 数字类型转换


Number =['零','一','二','三','四','五','六','七','八','九']
x = input()
for i in x:
    print(Number[eval(i)],end='')

print()中增加end=""参数表示输出后不增加换行,多个print()可以连续输出。

input()语句输入的内容只能是字符串类型

x和i均为字符串类型

若需要输入int类型 则需要利用int()进行强制类型转换,如下


a = int(input())

练习四 温度转换Ⅱ


Tempstr=input()
if Tempstr[0]in['F','f']:
    C=(eval(Tempstr[1:])-32)/1.8
    print('C{:.2f}'.format(C))
elif Tempstr[0]in['C','c']:
    F = 1.8*eval(Tempstr[1:])+32
    print('F{:.2f}'.format(F))
else:
    print('输入格式错误') 

与练习一不同的是,由于输入示例为 C123 输出示例 F253.40

所以需要去除第一个字符 故使用 Tempstr[1:]

TempStr[1:]表示字符串除首字符外的所有字符。

练习五 货币转换Ⅰ


money=input()
if money[0:3]in['RMB']:
    print('USD{:.2f}'.format(eval(money[3:])/6.78))
elif money[0:3]in['USD']:
    print('RMB{:.2f}'.format(eval(money[3:])*6.78))

本题与温度转换类似,要点在于

1.判断条件为前三个字符

2.从第四位字符开始取字符串

3.不需要说明输出格式错误

另外

1.为了精简,不在使用C,F。而是直接将eval利用在format中

2.== 表示 "等于",in 表示成员包含,对于这个题目,由于只允许输入采用全大写方式,以下两种方法均可


money[0:3]in['RMB']
money[0:3] == "RMB"

测验题

测验题一 Hello World的条件输出


s = "Hello World"
n = eval(input())
length = len(s)
if n == 0:
    print(s)
elif n > 0:
    for i in range(0,length,2):
        print(s[i:(i+2)])
else:
    for i in s:
        print(i)

本题的关键在于 n大于0时,以步长为二对range进行for循环

测验题二 数值运算


s = input()
S = eval(s)
print("{:.2f}".format(S))
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
        int pid;
        printf("---------------------\n");
        printf("父进程正在执行……\n");
        pid=fork();//父进程生成子进程1
        if(pid==0){//子进程1执行
                printf("子进程1正在执行……\n");
                sleep(1);
                sleep(1);//等待一段时间
                printf("---------------------\n");
                printf("子进程1被父进程杀死\n");
                exit(0);
        }
        if(pid>0){
                int pid1=fork();//父进程A生成子进程2
                if(pid1==0){//子进程2执行
                        printf("子进程2正在执行……\n");
                        sleep(1);
                        sleep(1);//等待一段时间
                        printf("子进程2被父进程杀死\n");
                        exit(0);
                }
                if(pid1>0){
                        sleep(2);//父进程A休眠一秒
                        sleep(1);//等待一段时间
                        sleep(2);
                        printf("父进程结束\n");
                        printf("---------------------\n");
                        exit(0);
                }	
        }
        return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值