鱼C论坛

 找回密码
 立即注册
查看: 2098|回复: 8

[技术交流] python入门004课后作业

[复制链接]
发表于 2020-1-30 15:38:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
测试题:
0: 无限循环, 试了一下,电脑停不下来了,原因是 while 里面 的语句,因为没有任何输入 这个代码,所以 ‘C’代表的是true 所以一直运行打印 无限循环,我的妈呀

1:本来以为是无限,结果是10次

2: 10<cost and cost<50

3:可以的

4:可以

5:and 不一定需要括号

6:布尔运算符有个有趣的特性:只有在需要求值时才进行求值。举例来说,表达式x and y需要两个变量都为真时才为真,所以如果x为假,表达式就会立刻返回false,而不管y的值(事实上各个语言都有这个特性)。实际上,如果x为假,表达式会返回x得值----否则它就返回y的值。这种行为被称为短路逻辑(short-circuit logic)或惰性求值(lazy evaluaion):布尔运算符通常被称为逻辑运算符,就像你看到的那样第2个值有时“被短路了”。这种行为对于or来说也同样适用。在表达式x or y中,x为真时,它直接返回x的值,否则返回y值。注意,这意味着在布尔运算符之后的所有代码都不会执行。
 这有什么用呢?它主要是避免了无用地执行代码,可以作为一种技巧使用,假设用户应该输入他/她的名字,但也可以选择什么都不输入,这时可以使用默认值‘<unknown>’。可以使用if语句,但是可以很简洁的方式:
name = raw_input('Please enter your name: ') or '<unknown>'  换句话说,如果raw_input语句的返回值为真(不是空字符串),那么它的值就会赋给name,否则将默认的'<unknown>'赋值给name。
 这类短路逻辑可以用来实现C和Java中所谓的三元运算符(或条件运算符)

动动手
0:import random
secret =random.randint(1,10)
print("---------^猜数字游戏改进版^----------")
temp=input("猜一猜强哥心里想的是哪一个数字?")
guess=int(temp)
if guess==secret:
    print("你是强哥心里的蛔虫吗?")
    print("哼,猜中了,也没有奖励!")
if  guess>secret:
    print("哥,大了大了~")
    i=2
    while i:
        print("你还有",i,"次机会")
        temp=input("到底是什么数字呢?:")
        guess=int(temp)
        if guess>secret :
            print("大了大了")
            i=i-1
        if guess<secret :
            print("小了小了")
            i=i-1
        if guess==secret :
            print("恭喜你猜中啦!")
            break
if guess<secret:
    print("哥,小了小了~")
    i=2
    while i:
        print("你还有",i,"次机会")
        temp=input("到底是什么数字呢?:")
        guess=int(temp)
        if guess>secret :
            print("大了大了")
            i=i-1
        if guess<secret :
            print("小了小了")
            i=i-1
        if guess==secret :
            print("恭喜你猜中啦!")
            break
print("游戏结束不玩啦~!~~")
但我觉得还不够完善 可以继续精简

1:
temp=input("请输入一个整数")
x=int(temp)
i=1
if x<=0:
    print("您输入的值无效")
else:
    while x:
        print(i)
        i=i+1
        x=x-1

2:
temp=input("请输入一个整数")
x=int(temp)
y=x
while x:
    print(" "*(x-1),"*"*x)
    x=x-1

3:
这一课学到的知识使我发掘了学习python的信心和乐趣,其一,与C语言不同的语法方式,节省了很多时间以及便于理解,例如打印输出图形时,直接“*”*i 就可以了,不费脑细胞
其二,一些快捷键: 选中按住TAB整体后移 输出既有字符串又有变量的语句时 中间用 , 隔开
python 不能使用i-- 只能用i=i-1
while i 可以循环 i 次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-30 17:30:32 | 显示全部楼层
最后那句“while i 可以循环 i 次”不对吧,要是i是大于 0的数,是无限循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-30 17:31:32 | 显示全部楼层
课后作业我们都是都直接在帖子里回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 16:01:11 | 显示全部楼层
冰魂雪魄 发表于 2020-1-30 17:30
最后那句“while i 可以循环 i 次”不对吧,要是i是大于 0的数,是无限循环

不是的 你可以尝试一下 while 多少就是循环几次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-1 18:02:30 | 显示全部楼层
冰魂雪魄 发表于 2020-1-30 17:31
课后作业我们都是都直接在帖子里回复

但是 不知道怎么能够看自己在课后作业发的贴子啊,我找不到了怕丢 就只能复制发到个人帖子里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 22:05:03 | 显示全部楼层
最强骚妲 发表于 2020-3-1 18:02
但是 不知道怎么能够看自己在课后作业发的贴子啊,我找不到了怕丢 就只能复制发到个人帖子里

https://fishc.com.cn/forum.php?m ... w=my&type=reply
这里可以找到自己的回帖,但是确实不能查找特定主题帖子的回帖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 22:07:17 | 显示全部楼层
最强骚妲 发表于 2020-3-1 16:01
不是的 你可以尝试一下 while 多少就是循环几次

试了啊
while 5:
    print ('Hello')
这样会一直不停的打印Hello
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-20 23:34:23 | 显示全部楼层
冰魂雪魄 发表于 2020-3-1 22:07
试了啊

这样会一直不停的打印Hello

是python 么 我再试试把,也许我错了,但是我记得是这样运行成功的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-21 10:32:39 | 显示全部楼层
最强骚妲 发表于 2020-3-20 23:34
是python 么 我再试试把,也许我错了,但是我记得是这样运行成功的

5不是非零值,所以在while条件中就被被判断为True,所以whil 5 和 while True的效果是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 04:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表