程序输入输出

1.1 问题

编写login.py脚本,实现以下目标:

提示用户输入用户名

将用户名保存在变量中

在屏幕上显示欢迎用户的信息

1.2 方案

编写程序时,很多情况下都需要程序与用户交互。在python中,主要通过raw_input()获取用户输入信息,使用print打印信息。

通常当想看变量内容时,会在代码中使用print语句输出。不过在交互式解释器中,可以用print语句显示变量的字符串表示,或者仅使用变量名查看该变量的原始值。

从用户那里得到数据输入的最容易的方法是使用raw_input()内建函数。它读取标准输入,并将读取到的数据赋值给指定的变量。需 要注意的是,raw_input()函数读入的数据全部是以字符串的方式存储的。如果用户输的是数字,那么python也将其保存为字符串,当将字符串与 数字做数学运算是将会出现TypeError的错误。

初学者在需要显示信息或得到用户输入时,很容易想到使用print语句和raw_input()内建函数。不过在此建议函数应该保持其 清晰性,也就是它只应该接受参数,返回结果。从用户那里得到需要的数据, 然后调用函数处理, 从函数得到返回值,然后显示结果给用户。这样你就能够在其它地方也可以使用你的函数而不必担心自定义输出的问题。这个规则的一个例外是,如果函数的基本功 能就是为了得到用户输出,或者就是为了输出信息,这时在函数体使用print语句或raw_input()也未尝不可。更重要的,将函数分为两大类,一类 只做事,不需要返回值(比如与用户交互或设置变量的值), 另一类则执行一些运算,最后返回结果。如果输出就是函数的目的,那么在函数体内使用 print 语句也是可以接受的选择。

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:编写脚本

本次练习的脚本文件是/root/bin/login.py。

[root@py01 bin]# vim login.py

#!/usr/bin/env python

username = raw_input('username: ') #使用变量username接收用户输入的字符

print 'Welcome', username #输出欢迎信息,字符串和变量名之间用逗号

#隔开,两者之间自动会加上空格

步骤二:测试脚本执行

[root@py01 bin]# chmod +x login.py #给脚本添加执行权限

[root@py01 bin]# login.py

username: bob #输入用户名

Welcome bob

2 案例2:判断合法用户

2.1 问题

编写login.py2脚本,实现以下目标:

提示用户输入用户名和密码

将用户名和密码分别保存在变量中

如果用户名为bob并且密码为123456,则输出Login successful,否则输出Login inorrect

2.2 方案

本题主要是复合的判断语句,写法有如下两种:

使用两个判断语句,先判断用户名,如果用户名正确再判断密码是否正确

在一个判断语句中,同时判断两个条件是否全部成立

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:编写脚本

在很多语言中,if后面的判断条件需要使用圆括号或方括号,但是python并不强制,可以直接将判断条件写在if后面,并不会产生错误。

有些时候,判断条件可能有多个(使用and或or连接),为了更好的可读性,建议在这种环境下,将多个条件分别用圆括号括起来。

[root@py01 bin]# vim login2.py

#!/usr/bin/env python

username = raw_input('username: ')

password = raw_input('password: ')

if username == 'bob':

if password == '123456':

print 'Login successful'

else:

print 'Login incorrect'

else:

print 'Login incorrect'

或将上面的代码改为以下写法:

[root@py01 bin]# vim login2.py

#!/usr/bin/env python

username = raw_input('username: ')

password = raw_input('password: ')

if username == 'bob' and password == '123456':

print 'Login successful'

else:

print 'Login incorrect'

步骤二:测试脚本执行

[root@py01 bin]# ./login2.py

username: bob

password: 123456

Login successful

[root@py01 bin]# ./login2.py

username: bob

password: abcd

Login incorrect

[root@py01 bin]# ./login2.py

username: tom

password: 123456

Login incorrect

步骤三:改进脚本

脚本程序在运行时,应该将敏感的密码隐藏,不要显示在屏幕上。为了实现这个功能,可以使用getpass模块中的getpass方法。

getpass可以像Linux处理密码一样,屏幕上不出现任何字符,但是用户的输入可以保存到相应的变量中。

上面的代码可以改写为:

[root@py01 bin]# vim login2.py

#!/usr/bin/env python

import getpass

username = raw_input('username: ')

password = getpass.getpass('password: ')

if username == 'bob' and password == '123456':

print 'Login successful'

else:

print 'Login incorrect'

测试脚本执行:

[root@py01 bin]# ./login2.py

username: bob

password: 123456 #此处所填写的密码将不在屏幕上显示

Login successful

3 安全3:编写判断成绩的程序

3.1 问题

编写score.py脚本,根据用户输入的成绩分档,要求如下:

如果成绩大分60分,输出“及格”

如果成绩大于70分,输出“良”

如果成绩大于80分,输出“好”

如果成绩大于90分,输出“优秀”

否则输出“你要努力了”

3.2 方案

本题需要注意的是逻辑顺序。在多分支的if语句中,自顶向下逐步匹配,一旦匹配则执行相应的子语句,其他语句将不再执行。

因此,在编写代码时要注意逻辑,成绩是100分也大于60分,如果把判断较小分数的语句写在前面,那么是凡大于60分的成绩都是输出“及格”,那么只有第一个判断语句会执行,所以应该把分值更高的判断写在上面。

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:编写脚本

[root@py01 bin]# vim score.py

#!/usr/bin/env python

#coding: utf8 #为了程序可以支持中文,指定UTF8编码

score = int(raw_input('enter score: '))

if score > 90:

print '优秀'

elif score > 80:

print '好'

elif score > 70:

print '良'

elif score > 60:

print '及格'

else:

print '你要努力了!'

步骤二:测试脚本执行

[root@py01 bin]# ./score.py

enter score: 59

你要努力了!

[root@py01 bin]# ./score.py

enter score: 88

判断成绩linux程序编程,程序输入输出 ,编写判断成绩的程序相关推荐

  1. 编程精粹 --Microsoft编写优质无错C程序秘诀

    献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...

  2. Linux系统编程18:超详解进程程序替换exec函数的一些用法

    文章目录 (1)进程程序替换是什么 (2)exec-替换函数 (3)实例展示-了解exec函数的替换原理 A:execl和execv B:execlp和execvp C:替换自己的程序和execle ...

  3. visual studio 如何编写c语言程序,用Visual Studio 编写纯C语言程序

    本篇文章讲述如何用微软的 Visual Studio 编写纯C语言程序,这里的纯C语言,指的是 ANSI C 语言. 要在 Visual Studio 里创建一个ANSI C语言程序,请按以下步骤执行 ...

  4. java 加法程序_使用JAVAEE编写简单的加法程序

    软件152  罗俊 首先选择菜单file-new-maven project,勾选"Create a &simple project (skip archetype selectio ...

  5. 再php用if语句实现成绩,php中if语句怎么编写学生成绩等级

    php中if语句怎么编写学生成绩等级 php中if语句怎么编写学生成绩等级? 代码如下:php语言 var $score;//分数变量 if($score<60){ echo "不及格 ...

  6. 在SAP云平台ABAP编程环境上编写第一段ABAP程序

    距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...

  7. Linux Shell编程(2)——第一个shell程序

    在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表.这至少让你执行它 时不必重新按顺序键入相同功能的命令序列. 一个清空/var/log目录下的日志文件的脚本 # Cleanup # 必须 ...

  8. python心理学实验程序_psychopy coder模式编写心理试验程序 字符程序和记录反应时...

    自变量 呈现3个字母,中间为A或者B的话,被试需要反应f,中间为X或Y的话,被试需要反应j. 3个字母中间有两种情况:AB或XY 3个字母两边有同类或异类两种情况:AB两边是AB为同类,为XY为异类: ...

  9. c语言创建空顺序表的程序,用C语言编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。...

    #include #include #define maxsize 30 typedef int datatype; typedef struct seqlist{ datatype data[max ...

最新文章

  1. 前端开发应届生面试指南(含各大公司具体指南及面试真题)
  2. C#获取SQLServer数据库表名和字段名
  3. 【干货】你如何寻找APP?发现优秀 APP 的一些途径
  4. Linux创建文件系统及设置分区卷标
  5. BOOST_PP_CHECK_EMPTY宏相关的测试程序
  6. 【C++】 C++标准模板库(四) Set
  7. 各类型数据的导入与导出
  8. 【leetcode】521. Longest Uncommon Subsequence I
  9. 国内外知名工业交换机品牌有哪些?
  10. 数据结构快速掌握和温习-面试神器
  11. linux下如何bash文件,Linux系统的文件管理命令及bash的相关工作特性
  12. gitlab上传本地项目_环境搭建:gitLab平台的搭建和简单使用
  13. gsm短信猫长短信pdu数据包分析[转]
  14. CCNA培训课总结笔记--RIP的基本配置(五)
  15. 功能增强的进度条控件(源码)
  16. win10 桌面的的文件都不见了 提示不注销保存都文件都为临时_Windows10隐藏的8个小技巧,每一个都非常实用又高效...
  17. 服务器的mdf文件怎么打开,mdf文件,教您mdf文件怎么打开
  18. 关于游戏中美术文件夹的划分
  19. python类和对象
  20. Curse of dimensionality - 维数灾难

热门文章

  1. 怎么查看进程窗口_结束员工电脑进程/活动窗口的软件
  2. 根据要求调参用matplotlib做一个一模一样的直方图(以及如何把成图变得更好看)
  3. Oracle数据库实现主键自增(利用sequence)和分页查询(利用rownum)
  4. 11.LNMP基础架构
  5. Aqua Data Studio数据库连接工具解决Sybase中文乱码问题
  6. Log4j2架构分析与实战
  7. Java 多态(一)
  8. 一次性插入上万条数据的写法
  9. flex 学习笔记 皮肤(一)
  10. 哈理工计算机学院保研,哈尔滨理工大学计算机科学与技术学院(专业学位)软件工程保研夏令营...