第005讲 闲聊之Python的数据类型

点击打开小甲鱼作业链接

第005讲 闲聊之Python的数据类型

测试题:

  1. 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?
    答:bool表示布尔类型:True、False;
    float表示浮点型,带小数点;
    str表示字符串

  2. 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
    答:布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。
    布尔型运算结果常用于条件语句:0为false,1为true(非0)。Bool表示布尔型变量,也是逻辑型变量的定义符。

  3. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
    答:结果是向下取整,取前面的整数,对于负数来说是向上取整。

  4. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
    答:round()是四舍五入,但是不能太精确;直接加0.5也可以:a=8.6;int(a+0.5)

  5. 取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance(),你更倾向于使用哪个?
    答:取得一个变量的类型使用同type(),但是确认两个是不是同一类型使用isinstance()

  6. Python3 可以给变量命名中文名,知道为什么吗?
    答:Python3源代码文件中默认使用UTF-8编码(支持中文),所以中文代码是合法的。

  7. 【该题针对零基础的鱼油】你觉得这个系列教学有难度吗?
    答:我觉得课后作业对于没有编程基础得人来说有难度。

动动手:
0. 针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
# 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
while type(temp) != type(1):
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")

或者可能这样:

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
# not操作符的作用是将布尔类型的结果翻转:即取反的意思,not True == Flase
while not isinstance(temp, int):
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")

以上方法的思路是正确的,不过似乎忽略了一点儿:就是 input() 的返回值始终是字符串,所以 type(temp) 永远是 <class ‘str’>!

其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。

所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!

s 为字符串

s.isalnum() 所有字符都是数字或者字母,为真返回 True,否则返回 False。

s.isalpha() 所有字符都是字母,为真返回 True,否则返回 False。

s.isdigit() 所有字符都是数字,为真返回 True,否则返回 False。

s.islower() 所有字符都是小写,为真返回 True,否则返回 False。

s.isupper() 所有字符都是大写,为真返回 True,否则返回 False。

s.istitle() 所有单词都是首字母大写,为真返回 True,否则返回 False。

s.isspace() 所有字符都是空白字符,为真返回 True,否则返回 False。
例如:

s = ‘I LOVE FISHC’
s.isupper()
True

好了,文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧!
答:

import random
times = 3
secret = random.randint(1,10)
print("------------------我爱鱼c工作室------------------")
guess = 0
print("玩一个小游戏吧,给你"+str(times)+"次机会哦(一个1—10范围内的整数)")
print("不妨猜一下小鱼现在心里想的是那个数字:", end=" ")
while (guess != secret) and (times > 0):
    temp = input()
    while not temp.isdigit():
        print("抱歉,输入不合法,",end="")
        temp = input("请输入一个整数:")
    guess = int(temp)
    times = times - 1
    if guess == secret:
        print("我去,你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > secret:
            print("哥,大了大了~~")
        else:
            print("嘿,小了!小了!!")
        if times > 0:
            print("哎呀,猜错啦,请重新输入吧:",end="")
        else:
            print("机会已经用完啦!")
print("游戏结束,不玩啦^_^")
  1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)

这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年。
答:

print('------------------测一测年份是平年还是闰年------------------')    
print("请输入年份数字:", end=" ")
temp = input()
while not temp.isdigit():
    print("抱歉,输入不合法,",end='')
    temp = input("请输入一个整数:")
year = int(temp)
runyear = year%4
if runyear == 0:
    print(str(year)+"是闰年")
else:
    print(str(year)+"是平年")

改正:

print('------------------测一测年份是平年还是闰年------------------')    
print("请输入年份数字:", end=" ")
temp = input()
while not temp.isdigit():
    print("抱歉,输入不合法,",end='')
    temp = input("请输入一个整数:")
year = int(temp)
if year%400 == 0:
    print(str(year)+"是闰年")
else:
    if(year%4 == 0) and (year%100 != 0):
        print(str(year)+"是闰年")
    else:
        print(str(year)+"是平年")
  1. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
    答:Python的数据类型:
    Bool类型:特殊整形,True=1,False=0;True+True=2(加减乘除都可)
    整型:无小数点
    浮点型:有小数点
    E记法(复数):科学计数法,e大小写都可以,都会变成浮点型
    字符串:str()会带‘’;整数:int();浮点数:float()加小数点;三者之间互相转换
    获得关于类型的信息:type(),isinstance(,)返回bool(两个类型一致为True,不一致为False)

测试程序:

import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0
# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("玩一个小游戏吧,给你"+str(times)+"次机会哦(一个1—10范围内的整数)")
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):
    temp = input()
    while not temp.isdigit():
        print("抱歉,输入不合法,",end='')
        temp = input("请输入一个整数:")
    guess = int(temp)
    times = times - 1 # 用户每输入一次,可用机会就-1
    if guess == secret:
        print("我草,你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > secret:
            print("哥,大了大了~~~")
        else:
            print("嘿,小了,小了~~~")
        if times > 0:
            print("再试一次吧:", end=" ")
        else:
            print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")

练习题(来自小甲鱼官方论坛)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值