weijia910512 发表于 2022-12-3 01:25:21

008讲课后作业最后一题的疑惑

我的答案是:import random

counts = input('请输入抛硬币的次数:')
counts = int(counts)
i = 0

print("开始抛硬币实验:")
while i < counts:
    num = random.randint(0,1)
   
    if num % 2:
      print('正面')
    else:
      print('反面')

    i = i + 1

而正确的答案代码是:
import random

counts = int(input("请输入抛硬币的次数:"))
i = 0

print("开始抛硬币实验:")
while i < counts:
    num = random.randint(1, 10)

    if num % 2:
      print("正面", end=" ")
    else:
      print("反面", end=" ")

    i += 1
我一直想不明白这一句是啥意思 if num % 2:
num被赋值是一个随机数,当随机数除2取余数?然后就打印正面,反之就打印反面,实在无法理解
还有个小问题,print("正面", end=" ") 这里面的end = "" 是啥意思?不换行吗?

jackz007 发表于 2022-12-3 09:11:07

      每个整型数都带布尔值,0 值是 False 非 0 值是 True,所以,if num % 2 的意思是,如果 num 除以 2 的余数不为 0 的话,就是说,在 num 为奇数的时候,条件成立。
       print() 函数使用 end = '' 的目的就是本次打印结束不换行。

suchocolate 发表于 2022-12-3 09:11:12

非0即true,数据类型基础知识
print默认给内容尾部加换行符\n,end=''就是将默认的尾部符号去掉,同样,你也可以设置别的符号:
>>> print('fishc', end='.com')
fishc.com
>>>
页: [1]
查看完整版本: 008讲课后作业最后一题的疑惑