当前位置:   article > 正文

python学习--Day2_温度的刻画有两个不同体系:摄氏度()和华氏度( fahrenheit)。请编写函数,根据

温度的刻画有两个不同体系:摄氏度()和华氏度( fahrenheit)。请编写函数,根据


学习目标:

通过第一天的一些基本的数据类型的学习,其实和Java的数据类型是相近的,学习起来也较为容易,今天需要学习的目标是Python的输入输出,以及一些常见的python函数,完成一些简单的程序,以扎实巩固基础.

学习内容

1.Python的输入与输出

输出:

我们常常使用print()函数将信息输出到控制台上,这与其他语言有着不谋而合之处,关于print函数输出,有些地方仍然需要做一些补充:
①可以使用多个逗号分割表达式,然后这些个表达式会转换成一个字符串并输出,如:

print("你好啊,","我是阿尔伯特·爱因斯坦。","我发现了广义相对论和",
      "狭义相对论,欢迎来和我PK")
  • 1
  • 2

②格式化输出信息

如果希望输出文字信息的同时,一起输出数据,就需要使用到格式化操作符
% 被称为格式化操作符,专门用于处理字符串中的格式,包含%的字符串,被称为格式化字符串
% 和不同的字符连用,不同类型的数据需要使用不同的格式化字符

下面整理了常用的格式化字符:

字符含义及相应的属性
%s字符串
%d有符号的十进制位整数输出,%06d表示输出的整数显示位数字,不足的地方使用0补全
%f浮点数,%.2f表示小数点后显示两位
%%输出%
a:int=12345
b:float=3.1415926
str='浮点数b保留'
print("整数a输出的7位显示位数为:%07d"%a)   #输出0012345
print("%s3位小数后是%.3f"%(str,b))     #输出3.142
  • 1
  • 2
  • 3
  • 4
  • 5
输入:

与输出相类似,输入也使用了一个函数进行数据输入,那就是input()函数,input函数中可以加入相应的字符串作为提示字符:
如:

input('请输入长方形的长:')
  • 1

2.一些常见的python函数

①eval()函数:

eval()函数用来执行一个字符串表达式,并返回表达式的值。还可以把字符串转化为list(列表)、tuple(元组)、dict(词典).

1)源码:

def eval(*args, **kwargs): # real signature unknown
“”"
Evaluate the given source in the context of globals and locals.
The source may be a string representing a Python expression
or a code object as returned by compile().
The globals must be a dictionary and locals can be any mapping,
defaulting to the current globals and locals.
If only globals is given, locals defaults to it.
“”"

2)语法:

eval(expression[,globals[,locals]])

  • expression:表达式。
  • globals:变量作用域,如果被提供,必须是一个字典对象。
  • locals:变量作用域,如果被提供,可以说任何映射对象。

3)实例:
Ⅰ.字符串转换成列表和词典:

#eval操作:(字符串转成词典和列表)
a="[1,4,9,16,25]"
b=eval(a)
print("转化成列表:"and b)

x='''{'website':'www.4399.com',
    'record':{
        'port':'127.0.0.1',
        'server':'localhost',
        'maxconn':30000
    }
}
'''
y=eval(x)
print("转换成词典:"and y)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

输出:
在这里插入图片描述

Ⅱ.返回表达式的值
检查下面代码,你认为会输出什么?

#eval求表达式的值
x=10
b=20
c=30
g={'a':6,b:8}
t={'b':100,'c':10}
m={'b':b,'c':c}
print(eval('a+b+c',g,m))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

正确答案是:56
这里eval中的参数指的是从该集合中取得的变量,若未声明从何处取得的,那么该程序就会运行错误。

②format()函数:
format函数是格式化函数,增强了字符串格式化的功能。

基本语法:( {}和:代替%)

操作及示例:

‘{} {} {}’.format(‘python’, ‘Hello’, ‘World’)
‘python Hello World’

‘{1} {1} {2}’.format(‘python’, ‘Hello’, ‘World’)
‘Hello Hello World’

‘my name is {name}, {age} years old’.format(name=‘Tom’, age=18)
‘my name is Tom, 18 years old’

从showgea博客中借鉴的知识:

槽内部对格式化的配置方式{<参数序号>:<格式控制标记>}

参数序号格式控制标记
:引导符号
<填充>用于填充的单个字符
<对齐><左对齐 >右对齐 ^居中对齐
<宽度>槽设定的输出宽度
<,>数字的千位分隔符
<.精度>浮点数小数,精度或字符串,最大输出长度
<类型>主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制

对齐:

>>> print('{:=<20}'.format('python'))
python==============
>>> print('{:=>20}'.format('python'))
==============python
>>> print('{:=^20}'.format('python'))
=======python=======
>>> print('{:^20}'.format('python'))
       python   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

千分位,精度

>>> '{:,.2f}'.format(123456.789)
'123,456.79'
  • 1
  • 2

进制:

>>> '{:b}'.format(123)
'1111011'
>>> '{:d}'.format(123)
'123'
>>> '{:o}'.format(123)
'173'
>>> '{:x}'.format(123)
'7b'
>>> '{:X}'.format(123)
'7B'
>>> '{:%}'.format(123)
'12300.000000%'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.温度转换以及货币转换练习

温度转换

题目:

温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
转换算法如下:(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()
if Str[-1] in ['f', 'F']:		#Str[-1]代表字符串的最后一个字符
    C = (eval(Str[0:-1]) - 32) / 1.8	#截取除了符号位以外的作为数值
    print("{:.2f}C".format(C))  #format是格式化函数

elif Str[-1] in ['c', 'C']:
    F = 1.8 * eval(Str[0:-1]) + 32
    print("{:.2f}F".format(F))
else: print('输入格式错误')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
货币转换:

题目:

人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
人民币和美元间汇率固定为:1美元 = 6.78人民币。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
注意:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
(1) 这是一个OJ题目,获得输入请使用input() ;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
(2) 不提示输出格式错误,结果小数点后保留两位

Str=input();

if(Str[0:3]=='RMB'):
    D=eval(Str[3:])/6.78
    print('USD%.2f' %D)
elif(Str[0:3]=='USD'):
    R=eval(Str[3:])*6.78
    print('RMB%.2f' %R)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

补充内容:

1.注释:单行注释与多行注释

python中常使用#进行单行注释,常使用三个单引号或者双引号将内容引起来进行多行注释,这与Java,C 语言是有很大不同的.

功法篇

1.python123中的错题(选择)

①以下关于Python语言中“缩进”说法正确的是:
错选:缩进是强制的,仅为了提高代码的可读性
正解:缩进在程序中长度统一且强制使用

②以下不属于IPO模型的是:
Program
IPO模型包括:Input、Process和Output】

2.编程题

数值运算:

由于没有考虑到eval()函数的解析能力,导致本题题解复杂化,分情况讨论了,题目如下:

获得用户输入的一个字符串,格式如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
M OP N‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
根据OP,输出M OP N的运算结果,统一保存小数点后2位。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。

string = input()  # 输入字符串
op_num = 0  # 初始值
op = ['+', '-', '*', '/']  # 数组存放操作符
for i, s in enumerate(string):
    if s in op and i != 0:  # 先判断是否符合输入方式   s代表操作符   i代表输入字符
        op_num = i
        if string[0] == '-':  # 第一个字符是负号
            num1 = -float((string[1:i]).strip())  # 移除空格的前提下 提取从第一个字符到第i个字符
        elif string[0:2] == '0x':  # 是否是16进制数
            num1 = int(eval((string[:i]).strip()))  # 提取到第i个数字数字
        else:
            num1 = float((string[0:i]).strip())
        num2 = float((string[i + 1:]).strip())  # 提取之后的数字

        if s == op[0]:  # 判断op的符号
            print('{:.2f}'.format(num1 + num2))
        elif s == op[1]:
            print('{:.2f}'.format(num1 - num2))
        elif s == op[2]:
            print('{:.2f}'.format(num1 * num2))
        else:
            print('{:.2f}'.format(num1 / num2))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

题解:

s=input()
print("{:.2f}".format(eval(s)))
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/195137
推荐阅读
相关标签
  

闽ICP备14008679号