python数据类型选择题_闲聊之Python的数据类型+习题复习-Go语言中文社区

##闲聊之Python的数据类型

(python的变量是没有类型的,更像是我们名字的标签,想贴哪贴哪,通过这个标签我们就可以轻易找到内幕才能中的存放位置,但绝不是说python是没有数据类型的,他是有数据类型的但,和变量区分好,之前说的字符串,无论是带的双引号还是单引号,三引号,他们都是字符串,字符串的相加就叫做拼接,数字的相加得到的就是和)

##Python的一些数值类型

f456fbb50ca58f867bfb9e6100d216b4.png

(先说python的一些数值类型,后边还会对字符串这个东西进行深入探讨,分阶段逐步渗透,逐层进行消化,)

※整型:python上的整型已经和长整型进行了无缝的衔接,在python2的时候还有分开来,2的时候长整型后边要加l,python3已经把整型和长整型结合在一块了,长度不限制,很容易进行大数运算

※浮点型:也就是我们说的小数,3.14159等,python区分整型和浮点型唯一方式就是看有没有小数点,有就是浮点型,没有就是整型

※e记法:不是一个数据类型,就是平时说的科学计数法,用来表示特别大或特别小的数,比如1.5e11就表示1.5x10的11次方

※布尔类型:他是个特殊的整型,尽管我们用True和False来表示真和假,但是布尔类型可以当成整数来对待,True相当于整数1,False相当于整数值0,还可以用来计算的,如下,但知道就好,不要这样区域计算

77afbf5c537f0d690c89811e696a27f9.png

2a0e64432dfb012f2e17cd82f2abfb88.png

##类型转换

54a829c6d4c94b8e2c6bb1eafcf779bc.png

d664683bccb2cd02356945e93b7b4635.png

(报错的原因是,自从str当做变量名来使用之后,他就相当于被赋予了另外一种身份,而当你再度使用他的时候,python会认为用他的新身份来代替以前的BIF,所以会出错)

##获得关于类型的信息

38f5b9914af0fa76ada8bf02cd416e98.png

eebb26f7c5426c1559ac465394b3d316.png

ec653ea4aa65fdf2bde9b6057c60992d.png

(更推荐用第二个来确认变量的类型,这个函数有两个参数,第一个是待确定类型的数据,第二个参数指定一个数据类型,然后isinstance()会返回一个布尔类型的值,true的话表示两个参数类型一致,false表示不一致)

8462af61b6053bb5b3e4b13c3c5829a5.png

##温故知新之习题

0.在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?

答:(bool 表示布尔类型、float 表示浮点型、str 表示字符串)

1.你知道为什么布尔类型 (bool) 的 True 和 False 分别用 1 和 0 来代替吗?

答:(你可能听说过计算机是很“笨”的, 究其根本是因为它只认识二进制数, 所以所有的编程语言最终都会转换成简单的二进制序列给 CPU 按照一定的规则解析。由于二进制只有两个数: 0 和 1,因此用 0 和 1 来表示 False 和 True 再适合不过了,因为不用浪费资源在转换的过程上!)

2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?

答:(我们可爱的小甲鱼说了, 小数取整会采用比较暴力的截断方式, 即向下取整。 (注:5.5 向上取整为 6,向下取整为 5)

3. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

答:(int() 固然没那么“聪明”,但机器是死的,鱼油是活的!

“四舍五入”结果为:5,int(5.4+0.5) == 5

“四舍五入”结果为:6,int(5.6+0.5) == 6 )

4. 取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance() ,你更倾向于使用哪个?

答:(建议使用 isinstance() ,因为它的返回结果比较直接,另外 type() 其实并没有

你想象的那么简单,我们后边会讲到。)

5. Python3 可以给变量命名中文名,知道为什么吗?

答:(Pyhton3 源码文件默认使用 utf-8 编码(支持中文),这就使得以下代码是合

法的:

<<

<<< print( 小甲鱼 )

<<< 我爱你

)

##动动手

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

如果你尝试过以下做法,请举下小手:

1. temp = input(" 不妨猜一下小甲鱼现在心里想的是哪个数字: ")

2. # 这种想法是因为 type(1) 会返回 ,如果 type(temp) 返回结果一致说明输入

是整数。

3. while type(temp) != type(1):

4. print(" 抱歉,输入不合法, ", end='')

5. temp = input(" 请输入一个整数: ")

或者可能这样:

1. temp = input(" 不妨猜一下小甲鱼现在心里想的是哪个数字: ")

2. # not 操作符的作用是将布尔类型的结果翻转:即取反的意思, not True == Flase

3. while not isinstance(temp, int):

4. print(" 抱歉,输入不合法, ", end='')

5. temp = input(" 请输入一个整数: ")

以上方法的思路是正确的,不过似乎忽略了一点儿:就是 input() 的返回值始终

是字符串,所以 type(temp) 永远是 !

其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!

s 为字符串

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

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

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

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

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

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

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

例如:

>>> s = 'I LOVE FISHC'

>>> s.isupper()

>>> True

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

答:(需要注意的地方在代码中已经注释!)

import random

times = 3

secret = random.randint(1,10)

print('------------------我爱鱼C工作室------------------')

#这里先给guess赋值(赋一个绝对不等于 secret的值)

guess = 0

# print() 默认是打印完字符串会自动添加一个换行符, end=" " 参数告诉 print() 用空格代替换行

# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ" ?

print(" 不妨猜一下小甲鱼现在心里想的是哪个数字: ", end=" ")

while (guess != secret) and (times > 0):

temp = input()

while not temp.isdigit():

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("游戏结束,不玩啦^_^")

b156259bef0e0e49afddba25edfae78f.png

1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)

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

temp = input("请输入一个年份: ")

while not temp.isdigit():

temp = input("抱歉,您的输入有误,请输入一个整数:")

year = int(temp)

if year/400 == int(year/400):

print(temp + "是闰年!")

else:

if (year/4 == int(year/4)) and (year/100 != int(year/100)):

print(temp + "是闰年!")

else:

if (year/4 == int(year/4)) and (year/100 != int(year/100)):

print(temp + "是闰年!")

else:

print(temp + "不是闰年!")

b0ca50ba5d935e92a802e68d5f22c63a.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值