Python菜鸟在成长——变量与基本数据类型

任务1:破译爬虫项目实践活动的日期密码
19世纪初,欧洲科学家开始研制电报。1837年前后,英国科学家库克、惠斯通和美国科学家莫尔斯先后将电报用于实践,并申请了专利。当时电报加解密和通信两个环节是分离的,效率十分低下。为了实现高效加密通信,美国电报电话公司的工程师弗纳姆发明了弗纳姆密码。弗纳姆把电报字符采用5位一组的二进制编码进行表示,每一位代表一个时间单元,在单元时间内,只能传来一个高电位或者零电位。也就是说,每个时间单元有2种状态,5个时间单元表示了32种状态,如果每种状态表示一个符号,就可以表示32种符号,可以覆盖全部的英文字母和6种特殊符号。高低电位的状态,可以对应的记录在穿孔纸带上,有电压就穿一个孔,没有电压就不穿孔;反之,在读取时,也可以利用孔洞的存在产生电路导通与断开的改变,还原出高低电位。这便实现了自动化的信息读写。
寒假期间,李铁有幸成为外星人教育Python爬虫项目实践活动的参与者。外星人教育给参加活动的同学都发了一条短信,告知了实践活动日期,但这条短信让李铁同学陷入了困境。因为这条短信只包含“报到日期”和6个5位二进制数字。报到日期 00010 00000 00010 00000 00001 01010用Python编程帮李铁破译一下短信包含的报名日期吧。

参考代码:

while True:
      # 输入用户需要转换的数字
      number = input("输入数字:")
      # 打印对应十进制数字
      print(int(number,2))

任务2:大声说出你的爱
大声说出你的爱,敢不敢?啥?不敢!好吧,那就把你的表白写进代码里。请试着定义三个不同类型的变量,输出你的爱之表白吧。第一个:字符串类型我爱你一生一世第二个:浮点型 520.1314第三个:整数型 5211314

love="我爱你一生一世"
print(love)
a="520.1314"
print(float(a))
b="5211314"
print(int(b))

在这里插入图片描述

参考代码:

str = "我爱你一生一世"  # 字符串类型变量
f = 520.1314  # 浮点类型变量
i = 5211314  # 整数类型变量
# 打印字符串类型变量
print(str)
# 打印浮点类型变量
print(f)
# 打印整数类型变量
print(i)

任务3:十进制数转换为二进制、八进制、十六进制
编写一个进制转换程序,要求可以把用户输入的十进制数转换为二进制、八进制、十六进制的数。
请输入一个十进制数1818 的二进制数为 10010,八进制为 22,十六进制为 12。

a = int(input("请输入一个十进制数:\n"))
print("转换为二进制数为:",bin(a))
print("转换为八进制数为:",oct(a))
print("转换为十六进制数为:",hex(a))

在这里插入图片描述

参考代码:

number = int(input("请输入一个十进制数:"))
# 将十进制数通过bin函数转成2进制后,前面会带有标志进制的符号0b,去掉0b的方法是从转换后的字符的第2位开始取值。
two = bin(number)[2:]
# 将十进制数通过oct函数转成8进制后,前面会带有标志进制的符号0o,去掉0o的方法是从转换后的字符的第2位开始取值。
eight = oct(number)[2:]
# 将十进制数通过hex函数转成16进制后,前面会带有标志进制的符号0x,去掉0x的方法是从转换后的字符的第2位开始取值。
sixteen = hex(number)[2:]

print(number,"的二进制数为", two, ",八进制为", eight, ",十六进制为", sixteen)

任务4:输出游戏玩家的功力值
玩游戏时,功力值不够,很容易被对手消灭。已知某玩家在某款游戏中的功力值。编写一个程序,输入类似的功力数值,并打印出相关效果图。

a = input("请输入攻击值:")
b = input("请输入防御值:")
c = input("请输入武力值:")
d = input("请输入统率值:")
e = input("请输入速度值:")
f = input("请输入智力值:")
print("攻击"+a+"   *****")
print("防御"+b+"   ***")
print("武力"+c+"   ************")
print("统率"+d+"   **********")
print("速度"+e+"   ****************")
print("智力"+f+"   ********")

在这里插入图片描述

参考代码:

gj = input("请输入攻击值:")
fy = input("请输入防御值:")
wl = input("请输入武力值:")
ts = input("请输入统率值:")
sd = input("请输入速度值:")
zl = input("请输入智力值:")
print("\n攻击\t", gj, "\t\t*****")
print("防御\t", fy, "\t\t***")
print("武力\t", wl, "\t\t**********")
print("统率\t", ts, "\t\t********")
print("速度\t", sd, "\t\t**************")
print("智力\t", zl, "\t\t*******")

任务5:石头、剪子、布游戏
编写一个程序,实现大家熟悉的石头、剪子、布游戏。规定数字1代表石头,数字2代表剪子,数字3代表布。第一个玩家输入数字1~3后屏幕清屏,第二个玩家输入数字1~3后按下键,程序输出两个玩家输入的数字。玩家根据石头、剪子、布的游戏规则判断输赢。

参考代码:

import os
print("1.石头  2.剪子  3.布")
numberA = int(input("请第一位玩家输入数字:"))
if numberA > 3 or numberA < 1:
    print("error")
os.system("cls")    # 只在cmd窗口才可以显示清屏效果
numberB = int(input("请第二位玩家输入数字:"))
if numberB > 3 or numberB < 1:
    print("error")
if numberA == numberB:
    print("平")
if numberA == 1 and numberB == 2:
    print("第一位玩家赢")
if numberA == 1 and numberB == 3:
    print("第二位玩家赢")
if numberA == 2 and numberB == 1:
    print("第二位玩家赢")
if numberA == 2 and numberB == 3:
    print("第一位玩家赢")
if numberA == 3 and numberB == 1:
    print("第一位玩家赢")
if numberA == 3 and numberB == 2:
    print("第二位玩家赢")

任务6:输出球赛结果对比图
北京时间2018年11月8日凌晨4:00,2018~2019赛季欧冠第四轮进行了一场焦点之战,曼联客场2比1战胜尤文图斯队,已知双方赛后的数据对比,编写一个程序,尝试输出这个对比图。(图例使用软键盘中的特殊符号“”,背景色不用考虑。)

参考代码:

print("          尤文图斯            曼联")
print("53%       █████ 控球率 ████       47%")
print(" 17       █████ 任意球 ████       15")
print("  3         ████  射正  ████       3")
print(" 11   ███████  射偏  █             2")
print("  6     ██████  角球  ███         3")
print(" 15         ████  犯规  ████       17")
print(" 17       █████ 界外球 ████       14")
print("  7           ███ 球门球 █████     12")
print("  0                   越位                 0")
print("  2         ████  扑球 ████        2")

任务7:摇一摇,免单了
在生活中,你使用微信花了一笔笔钱,付了一笔笔账。每当微信支付完成,摇一摇后会收到不经意的惊喜——免单奖励或红包回馈。编写一个程序,当用户输入“摇一摇”后按键,随机输出免单的金额。如:输入“摇一摇”,提示用户“免单奖励”或是“¥0.25”

参考代码:

import random

INPUT = input("请输入操作命令:")
if INPUT == "摇一摇":
    ran = random.choice(('免单奖励','¥0.25'))
    print(ran)
else:
    print("error")

谈谈心得:
1.这一部分,着重是基础,但是涉及的知识,似乎都是我们思维盲区。任务一、三设计到十进制数、二进制数、八进制数、十六进制数的转换,关于bin()、ort()、和hex()函数,说实话,自己第一次解除,所以还得继续深入下去。
2.任务四不赘述,就说一点,我自己使用空格隔开数字和后面的符号,参考代码使用**\t来完成的,它是python里面比较常用的字符,意为水平制表符,用于横向跳到下一制表位。**
3.任务二考察基本数据类型,不过我的代码之中,似乎是强制转换为相应类型,大家可以看看参考代码,注释很到位。
4.任务五,剪刀石头布游戏,很熟悉吧,结果我还是没有写出来,除了自己的原因,还有就是它的要求不太一致,屏幕清屏按下键真的是难倒我了,说明还有许多自己不熟悉的知识,自己给自己加油。
5.软键盘输出特殊符号,抱歉没试过,也不会,其他简单。
6.随机数random,经常用着还是比较了解的,但是运用随机数,还要指定两个选项这个,打扰了,我不会啊。。。
(ps:看到我这个的朋友,觉得写的还行,来个点赞,谢谢。)

发布了43 篇原创文章 · 获赞 61 · 访问量 5104

猜你喜欢

转载自blog.csdn.net/qq_44735533/article/details/103679087