#temperature
str = input();
if str[-1]in ['F', 'f']:
    c = (eval(str[0:-1])-32)/1.8
    print("{:.2f}C".format(c))
elif str[-1] in ['C', 'c']:
    F = 1.8*(eval(str[0:-1])) + 32
    print("{:.2f}F".format(F))
else:
    print("输入格式错误")
  • 从一个例子说起,上面这段代码的作用是将华氏度转为摄氏度,或摄氏度转为华氏度,具体如下:
  • 转换算法如下:(C表示摄氏度、F表示华氏度)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬
C = ( F - 32 ) / 1.8‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

F = C * 1.8 + 32‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬
  • 要求如下:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬
  • (1) 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬
  • (2) 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指摄氏度87.65度;‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬
  • (3) 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬
  • (4) 使用input()获得测试用例输入时,不要增加提示字符串。
  • 下面我们具体看代码
  • str = input();从键盘读入一个字符串,这里不论从键盘输入什么类型,都进来的都按照字符串处理(str就是一个字符串),验证如下:

python代码转换成Javaee python代码转换成c代码在线_字符串

  • 如果一次要从键盘读入多个字符串可用下面的方法:

python代码转换成Javaee python代码转换成c代码在线_字符串_02

  • str[-1]这里表示字符串的最后一个字符,python中字符串中的字符有两种下标,一种和c++中一样,从左到右从0~某个正数, 还有一种就是从右到左从-1到某个负数。验证如下:

python代码转换成Javaee python代码转换成c代码在线_大括号_03

  • python中对else if进行了缩写直接写成elif并且if或者else写完条件语句后要有一个冒号,如:elif str[-1] in ['C', 'c']:
  • str[0:-1]中间是冒号(:)不是逗号,作用是取从0到-1前的所有元素,str[M,N]取从M到N之前的所有元素。
  • 格式化输出使用"{:.2f}".format();这里的大括号就像c语言中输出时的printf("%d", a), %d一样,叫做占位符,它的具体内容就是format(), 括号中的元素,如果有多个这样的大括号,那么大括号的位置对应format括号中的位置,如下:

python代码转换成Javaee python代码转换成c代码在线_python代码转换成Javaee_04



  • 大括号中冒号后面的.2f是精确到小数点后的两位的意思,具体格式化后面会补充博客。
  • print(a,b,c,d),输出时中间会自动加上空格:

python代码转换成Javaee python代码转换成c代码在线_python代码转换成Javaee_05

  • range(m,n)表示取从m到n-1的所有数,主要用在循环中:

python代码转换成Javaee python代码转换成c代码在线_字符串_06



  • 同时python中for循环有一个很有用的用法,在for后面加上else,如果正常退出了,那么就执行else中的语句,负责不执行else中的语句
for i in range(3,7):
    print(i)
    if i == 6:
        break;
else:
    print("正常退出了")
  • eval()去掉最外面的引号,然后执行这个语句,如果()中的内容是一个双引号引起来的数字,那么eval会去掉引号,把字符串转变为数字。如果里面是引号引起来的数学计算式,将会返回计算结果:

python代码转换成Javaee python代码转换成c代码在线_python_07