>> name'xiaobai'编写小程序,询问用户姓名,性别"/>

文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python学习——实现简单的交互raw

2023-01-31 02:38

关注

row_input的使用:

>>> name=raw_input("please input your name:")
please input your name:xiaobai
>>> name
'xiaobai'

编写小程序,询问用户姓名,性别,年龄,工作,工资,以格式化的方式输出:

Information of company stuff:

Name:

Age:

Sex:

Job:


代码:

[root@nfs-server ~]# vim information_of_stuff.py   
#!/bin/python
name=raw_input("Please input your name:")
age=raw_input("Please input your age:")
sex=raw_input("Please input your sex:")
job=raw_input("Please input your job:")
print '''
==============================
Information of company stuff:
Name: %s
Age: %s
Sex: %s
Job: %s
=============================='''%(name,age,sex,job)

执行:

[root@nfs-server ~]# python information_of_stuff.py
Please input your name:xiaobai
Please input your age:25
Please input your sex:male
Please input your job:engineer
==============================
Information of company stuff:
Name: xiaobai
Age: 25
Sex: male
Job: engineer
==============================

输入一个0~100直接的数字让用户猜,并且猜测次数不能大于三次。

[root@nfs-client2 ~]# vim guess_num.py   
#!/bin/python
import os
os.system('clear')                  #执行时先清屏
real_num=int(raw_input("please input the real_num from 0 to 100:"))
os.system('clear')                  #输入让用户猜的数字后清屏
retry_count=0                       #设定循环关闭条件
while retry_count<3:                #后面加冒号
        guess_num=int(raw_input("Please input a number from 0 to 100:"))
        if guess_num>real_num:
                print "Wrong! Please try smaller!"
                retry_count+=1       #自增
        elif guess_num<real_num:     #多个条件用elif
                print "Wrong! Please try bigger!"
                retry_count+=1
        else:                        #最后一个条件用
                print "Congurations! You got it!"
                break                #跳出循环
else:
        print "Too much times!"

Python不像shell,没有fi循环关闭符号,而是通过缩进控制代码层级,同一级代码缩进应保持一致,if和else不属于同一级,缩进不同也可执行,但不符合书写规范。

raw_input输入的是字符串,字符串与数字比较时会自动转为ASCII值进行比较,因此要使用int将其转换为整数类型,break为跳出循环。

ord:将字符串转换为ASCII对应的值。

>>> print ord("a")
97
>>> print ord("1") 
49

优化代码,以上代码输入回车或字符串会报错,且数字不是随机值,需要优化。

[root@nfs-client2 ~]# vim guess_num.py   
#!/bin/python
import os
import random
os.system('clear')
real_num=random.randrange(100)
os.system('clear')
retry_count=0
while retry_count<3:
        guess_num=raw_input("Please input a number from 0 to 100:").strip() #去空格回车
        if len(guess_num)==0:            #判断字符串长度是否为0
                continue
        if guess_num.isdigit():          #判断是否全为数字
                guess_num=int(guess_num)
        else:
                print "You should input a number instead of string!"
                continue                 #跳出当前循环,进行下一次循环
        if guess_num>real_num:
                print "Wrong! Please try smaller!"
        elif guess_num<real_num:
                print "Wrong! Please try bigger!"
        else:
                print "Congurations! You got the real number %d !"%real_num
                break
        retry_count+=1
else:
        print "Too much times! The real number is",real_num

.strip()表示将输入的空格和回车去掉;

len(guess_num)表示计算字符串的长度;

continue表示跳出当前循环,进行下一次循环;

isdigit()表示判断是否全是数字;


将上述循环更改为for循环:

[root@nfs-client2 ~]# vim guess_num_for.py    
#!/bin/python
import os
import random
os.system('clear')
real_num=random.randrange(100)
os.system('clear')
for i in range(3):
        guess_num=raw_input("Please input a number from 0 to 100:").strip()
        if len(guess_num)==0:
                continue
        if guess_num.isdigit():
                guess_num=int(guess_num)
        else:
                print "You should input a number instead of string!"
                continue
        if guess_num>real_num:
                print "Wrong! Please try smaller!"
        elif guess_num<real_num:
                print "Wrong! Please try bigger!"
        else:
                print "Congurations! You got the real number %d !"%real_num
                break
else:
        print "Too much times! The real number is",real_num

range为数组,其参数分别为起始值,末尾值,步长。

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(2,10,2)
[2, 4, 6, 8]
>>> range(2,20,5)
[2, 7, 12, 17]

设计一个多层循环,用户输入密码正确的话进入目录进行选择,并能退出循环。

[root@nfs-client2 ~]# cat mulit_loop.py    
#!/bin/python
passwd="test"
logout=False            #加跳出的flag
for i in range(3):
    password=raw_input("Please input your password:").strip()
    if len(password)==0:
        continue
    if password==passwd:
        print "Welcome to login!"
        while True:
            user_select=raw_input('''
            ====================================
            Please input a number to continue
            1.Send files;
            2.Send emalis;
            3.exit this level;
            4.exit the whole loop.
            ====================================
            ''').strip()
            user_select=int(user_select)
            if user_select==1:
                print "Sending files as you wish!"
            if user_select==2:
                print "Sending emails as you wish!"
            if user_select==3:
                print "Exit this level,please re-input the password!"
                break
            if user_select==4:
                print "Ok, let's have a break!"
                logout=True
                break
        if logout==True:
            break


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯