当前位置: 首页 > 编程日记 > 正文

题目 1477:【蓝桥杯】【入门题】字符串输入输出函数

题目 1477:字符串输入输出函数

蓝桥杯刷题群已成立,微信后台回复【蓝桥杯】,即可进入。

如果加入了之前的社群不需要重复加入。

时间限制: 1Sec 内存限制: 128MB

1. 题目描述

编写函数GetReal和GetString,在main函数中分别调用这两个函数。在读入一个实数和一个字符串后,将读入的结果依次用printf输出。

两次输入前要输出的提示信息分别是" please input a number:\n”和" please input a string:\n"

2. 输入

3. 输出

4. 样例输入

9.56 
hello 

5. 样例输出

please input a number:
please input a string:
9.56
hello

6. 解决方案

Python语言

def GetReal():print("please input a number:")n = float(input().strip())return ndef GetString():print("please input a string:")s = input().strip()return sn = GetReal()
s = GetString()
print("%.2f" % float(n))
print(s)

知识点:函数参数

Python 的函数具有非常灵活多样的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。从简到繁的参数形态如下:

  • 位置参数 (positional argument)
  • 默认参数 (default argument)
  • 可变参数 (variable argument)
  • 关键字参数 (keyword argument)
  • 命名关键字参数 (name keyword argument)
  • 参数组合

(1)位置参数

def functionname(arg1):"函数_文档字符串"function_suitereturn [expression]
  • arg1 - 位置参数 ,这些参数在调用函数 (call function) 时位置要固定。

(2)默认参数

def functionname(arg1, arg2=v):"函数_文档字符串"function_suitereturn [expression]
  • arg2 = v - 默认参数 = 默认值,调用函数时,默认参数的值如果没有传入,则被认为是默认值。
  • 默认参数一定要放在位置参数 后面,不然程序会报错。

【例子】

def printinfo(name, age=8):print('Name:{0},Age:{1}'.format(name, age))printinfo('小马')  # Name:小马,Age:8
printinfo('小马', 10)  # Name:小马,Age:10
  • Python 允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

【例子】

def printinfo(name, age):print('Name:{0},Age:{1}'.format(name, age))printinfo(age=8, name='小马')  # Name:小马,Age:8

(3)可变参数

顾名思义,可变参数就是传入的参数个数是可变的,可以是 0, 1, 2 到任意个,是不定长的参数。

def functionname(arg1, arg2=v, *args):"函数_文档字符串"function_suitereturn [expression]
  • *args - 可变参数,可以是从零个到任意个,自动组装成元组。
  • 加了星号(*)的变量名会存放所有未命名的变量参数。

【例子】

def printinfo(arg1, *args):print(arg1)for var in args:print(var)printinfo(10)  # 10
printinfo(70, 60, 50)# 70
# 60
# 50

(4)关键字参数

def functionname(arg1, arg2=v, *args, **kw):"函数_文档字符串"function_suitereturn [expression]
  • **kw - 关键字参数,可以是从零个到任意个,自动组装成字典。

【例子】

def printinfo(arg1, *args, **kwargs):print(arg1)print(args)print(kwargs)printinfo(70, 60, 50)
# 70
# (60, 50)
# {}
printinfo(70, 60, 50, a=1, b=2)
# 70
# (60, 50)
# {'a': 1, 'b': 2}

「可变参数」和「关键字参数」的同异总结如下:

  • 可变参数允许传入零个到任意个参数,它们在函数调用时自动组装为一个元组 (tuple)。
  • 关键字参数允许传入零个到任意个参数,它们在函数内部自动组装为一个字典 (dict)。

(5)命名关键字参数

def functionname(arg1, arg2=v, *args, *, nkw, **kw):"函数_文档字符串"function_suitereturn [expression]
  • *, nkw - 命名关键字参数,用户想要输入的关键字参数,定义方式是在nkw 前面加个分隔符 *。
  • 如果要限制关键字参数的名字,就可以用「命名关键字参数」
  • 使用命名关键字参数时,要特别注意不能缺少参数名。

【例子】

def printinfo(arg1, *, nkw, **kwargs):print(arg1)print(nkw)print(kwargs)printinfo(70, nkw=10, a=1, b=2)
# 70
# 10
# {'a': 1, 'b': 2}printinfo(70, 10, a=1, b=2)
# TypeError: printinfo() takes 1 positional argument but 2 were given
  • 没有写参数名nwk,因此 10 被当成「位置参数」,而原函数只有 1 个位置函数,现在调用了 2 个,因此程序会报错。

【例子】

def printinfo(arg1, *, nkw=1, nkw2, **kwargs):print(arg1)print(nkw)print(nkw2)print(kwargs)printinfo(10, nkw2=2)
# 10
# 1
# 2
# {}

(6)参数组合

在 Python 中定义函数,可以用位置参数、默认参数、可变参数、命名关键字参数和关键字参数,这 5 种参数中的 4 个都可以一起使用,但是注意,参数定义的顺序必须是:

  • 位置参数、默认参数、可变参数和关键字参数。
  • 位置参数、默认参数、命名关键字参数和关键字参数。

要注意定义可变参数和关键字参数的语法:

  • *args 是可变参数,args 接收的是一个 tuple
  • **kw 是关键字参数,kw 接收的是一个 dict

命名关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。定义命名关键字参数不要忘了写分隔符 *,否则定义的是位置参数。

警告:虽然可以组合多达 5 种参数,但不要同时使用太多的组合,否则函数很难懂。


相关文章:

Android游戏开发基础part2--Canvas画布

游戏开发基础part2--Canvas画布 又过了一周才继续做总结,四级结束了,应该可以多点时间学习游戏编程了。 Canvas画布类是一个在游戏当中担当非常重要的角色,它可以绘制出不同的图形和图片,可以说没有了画布就不能做出画面炫丽的游戏…

JavaScript有哪三部分组成?

在学习web前端技术时,最常见的也是需要最着重学习的就是JavaScript这一方面,工作中也是会经常用到的,那么JavaScript有哪三部分组成呢?来看看下面的详细介绍。 JavaScript有哪三部分组成? JavaScript的组成 JavaScript由ECMScript、BOM和DO…

【蓝桥杯】【入门题】【算法提高VIP】1480:模拟计算器

题目 1480:模拟计算器 蓝桥杯刷题群已成立,微信后台回复【蓝桥杯】,即可进入。 如果加入了之前的社群不需要重复加入。 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 使用Switch语句编写一个模拟简单计算器的程序。依次输入两个整数和一个字…

《c和指针》笔记5

递归 C通过运行时堆栈支持递归函数。的哦贵函数就是直接或间接调用自身的函数。 递归函数所需要的2个特性: 1、存在限制条件,当符合这个条件时递归便不再继续。 2、每次调用之后越来越接近这个限制条件。 递归函数在实现方面更加接近问题的抽象定义&…

怎么获得combobox的valueField值

var a; var dwField new Ext.form.ComboBox({ fieldLabel:管理员, mode: local, width:70, id:user_name, …

哪些人适合学习java技术

java技术在互联网行业一直都是非常重要的存在,学习java技术只会多不会少,那么目前哪些人适合学习java技术呢?来看看下面的详细介绍就知道了。 哪些人适合学习java技术? 1.在家待业人员,没有明确的目标,不知道自己想要什么&#…

AS3版本的MaxRects算法测试

早上,在微博发现一条信息,关于MaxRects算法的,杜增强DzQ 移植的关于AS3版本的MaxRects算法,具体地址是:http://www.duzengqiang.com/blog/post/971.html 代码如下: /* Based on the Public Domain MaxRecta…

android 52 粘滞广播

粘滞广播:广播发送出去以后,广播接收者还没有创建,当广播接收者注册的时候就可以接收,如果不是粘滞广播则如果没有广播接收者就以后不能再接收了。 mainActivity: package com.sxt.day07_07;import android.app.Activity; import …

【蓝桥杯】【入门题】【算法提高VIP】1481:剪刀石头布

题目 1481:剪刀石头布 蓝桥杯刷题群已成立,微信后台回复【蓝桥杯】,即可进入。 如果加入了之前的社群不需要重复加入。 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 编写程序实现“剪刀,石头,布”游戏。在这个游戏中…

UI设计培训学习中必须掌握的设计原则

不管是刚开始学习UI设计或者已经在学习UI设计同学中,UI设计的设计原则都是非常重要的,需要大家去重点关注的,下面小编就为大家详细的介绍一下UI设计培训学习中必须掌握的设计原则。 UI设计培训学习中必须掌握的设计原则: 重复 在平…

【复盘】如何培养小朋友的编程能力?

Scratch家长群已成立,微信后台回复【Scratch家长群】,即可进入。 如果加入了之前的社群不需要重复加入。 前几天,我在得到听了 邵慧宁的故事,就想着把游戏化的思维应用于培养自己孩子的编程能力上,并邀请志同道合的家长…

ubuntu系统下载编译android源码

在ubuntu系统下编译android需要注意的事项:1. 参考http://source.android.com/中的安装说明。2. 安装JDK6中碰到的问题可以参考http://hi.baidu.com/designhouse/item/0dbece7c4f6af0376e29f6c1中的说明,记得配置环境变量。3. 下载代码时如果出现timeout…

[windows server 2008 站点系列五]一招加速域用戶的文件查找速度

在企业IT基础环境中,文件服务器的应用越来越平凡,而文件服务器的数量也随之增多。作为IT应用人员习惯性的从管理者的角度出发,找寻DFS等帮助简化管理维护的解决方案。但是,另一方面,企业用户往往很难在为数众多的文件服…

在web.xml文件中配置Servlet时,主要配置哪些信息?

web前端的学习内容是比较多的,其中有一部分就是关于在web.xml文件中配置Servlet时的相关内容,在web.xml文件中配置Servlet时,主要配置哪些信息?来看看下面的详细介绍。 使用IDE开发Servlet时,配置信息可以通过可视化方式定义。然…

Oracle Study之--ORA-12537(TNS:connection closed) 错误案例

系统环境: 操作系统:RedHat EL55 Cluster: Oracle 11gR2 GRID Oracle: Oracle 11gR2 在构建Oracle 11gR2 RAC时出现以下错误: 1、建库时 2、Listener 日志信息 3、客户端连接错误信息 解决方案: 123456789…

MEF: MSDN 杂志上的文章(9) 控制部件创建策略 ???

http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx 默认情况下,容器中的所有部件实例都是单例,因而由在容器中导入它们的所有部件共享。因此,SalesOrderView 和 ViewFactory 的所有导入程序都将获得同一实例。在很多情况下需要这样&am…

【青少年编程】绘制等腰直角三角形

Scratch竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】,即可进入。 如果加入了之前的社群不需要重复加入。 类比思维就是指把两个或者两类事物进行比较,并进行逻辑推理,找出两者之间的…

考PMP证书一定要参加PMP培训吗?

​ 考PMP证书一定要参加PMP培训吗?这是目前很多想要考pmp认证的小伙伴比较关心的一个问题,小编可以肯定的回答大家,当然需要参加,具体来看看下面的详细介绍。 考PMP证书一定要参加PMP培训吗?当然要,PMP考试要接受PMO授权许可培训…

Apache+PHP in MAC

是以为记,当前OSX下的ApachePHP配置。我的配置跟这篇文章应该一样:http://www.ccvita.com/398.htmlApache重启: apachectl restart|start|stopApache配置文件: /etc/apache2/httpd.conf (php5在这里开启)Apache虚拟主机…

【青少年编程】绘制五角星

Scratch竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】,即可进入。 如果加入了之前的社群不需要重复加入。 类比思维就是指把两个或者两类事物进行比较,并进行逻辑推理,找出两者之间的…

Kafka 消息监控 - Kafka Eagle

1.概述 在开发工作当中,消费 Kafka 集群中的消息时,数据的变动是我们所关心的,当业务并不复杂的前提下,我们可以使用 Kafka 提供的命令工具,配合 Zookeeper 客户端工具,可以很方便的完成我们的工作。随着业…

java开发培训好学习吗?难度大不大?

​ 互联网快速的发展,不断的在进行变革和更新,越来越多的人都对这个行业充满向往,很多人都想要学习java技术,那么java开发培训好学习吗?难度大不大?来看看下面的详细介绍。 java开发培训好学习吗?难度大不大?首先,…

gdb 调试动态库

原文链接 cat get.h int get (); int set (int a); cat get.c #include <stdio.h> #include "get.h" static int x0; int get () { printf ( "get x%d\n ", x); return x; } int set (int a) { printf …

【青少年编程】【一级】森林的一天

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。 如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取该程序的代码。 森林的一天 1. 准备工作 &#xff08;1&#xf…

Visual Studio Extensions for SharePoint v1.1

下载Visual Studio Extensions for SharePoint v1.1User Guide1、此版本&#xff08;1.1&#xff09;稍后会发布中文版2、此版本仍然只支持Visual Studio 20053、此版本仍然必须安装在包含了SharePoint Server&#xff08;或WSS&#xff09;、Visual Studio的机器上4、下个版本…

零基础学Java需要做哪些准备

想要成为一名合格的java工程师&#xff0c;那么好好学习java技术是非常重要的&#xff0c;对于零基础同学们来说&#xff0c;大家比较关注的就是“零基础学Java需要做哪些准备”这个问题&#xff0c;下面小编就来为大家做下详细的介绍。 零基础学Java需要做哪些准备? 1.制定学…

C# 启动外部程序的几种方法

C# 启动外部程序的几种方法&#xff1a; 1. 启动外部程序&#xff0c;不等待其退出。 2. 启动外部程序&#xff0c;等待其退出。 3. 启动外部程序&#xff0c;无限等待其退出。 4. 启动外部程序&#xff0c;通过事件监视其退出。 // using System.Diagnostics; private string…

在Mac和Linux之间用Rsync 拷贝文件

因为公司的苹果服务器是物理机&#xff0c;所以备份一直是个问题。Backup Exec 2012 勉强能工作&#xff0c;但是速度和可靠性一直都被我们所诟病。最后&#xff0c;老板决定把所有的数据copy到linux的共享文件夹&#xff0c;然后用Veeam 备份。 *IX系统里面说起拷贝&#xff0…

【复盘】升级打怪第一关,冲啊!

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 利用游…

在Java中是如何定义和声明接口的?

java技术需要学习的内容有很多&#xff0c;本期小编整理的教程资料就是关于“在Java中是如何定义和声明接口的?”的内容&#xff0c;希望下面的介绍能够给大家带来帮助。 如果一个抽象类的所有方法都是抽象的&#xff0c;则可以定义这个类为接口。接口是Java中最重要的概念之一…