为啥没名字能起 发表于 2020-6-5 15:20:39

这一串代码我爱了,你呢?

import random
name = random.randint(1,10)
abc = input ('请输入数字:')
guess = int(abc)
time = 5
while guess!=name and time>0:
    input ('again')
    guess = int(abc)
    time = time-1
    if guess == name:
      print('yes')
    else:
      if guess>name:
            print('no')
      else:
            print('no2')
      if time==0:
            print('231212')
      else:
            print('iodjsigij',time)
            
      
让新手头秃,就这一个小游戏我觉着自己已经快成死鱼了。。。。。。。
代码最后一段的 print('iodjsigij',time),为什么把逗号换成+号就会报错?今天真的就和这一串基础代码杠上了,从头到尾拆解重组,看看怎么写会成功,麻烦大佬帮忙解释下。
下方是报错代码:

Traceback (most recent call last):
File "D:/python练习/日常复习/hello.py", line 20, in <module>
    print('iodjsigij'+time)
TypeError: can only concatenate str (not "int") to str

Mike_python小 发表于 2020-6-5 15:22:22

import random
name = random.randint(1,10)
abc = input ('请输入数字:')
guess = int(abc)
time = 5
while guess!=name and time>0:
    input ('again')
    guess = int(abc)
    time = time-1
    if guess == name:
      print('yes')
    else:
      if guess>name:
            print('no')
      else:
            print('no2')
      if time==0:
            print('231212')
      else:
            time1 = str(time)
            print('iodjsigij',time1)

如果问题解决了

设个最佳吧

qiuyouzhi 发表于 2020-6-5 15:23:31

把+号改成,就行了,因为字符串不能和数字放在一起,但也可以通过str(times),把times转换为一个字符串,实现拼接的功能。

为啥没名字能起 发表于 2020-6-5 15:23:59

Mike_python小 发表于 2020-6-5 15:22
如果问题解决了

设个最佳吧

主要是想让大佬解释下 为什么逗号、and都可以成功跑起来,而用加号就不行呢?这串能跑起来的代码我已经能写出两种了,但还是感谢。

Mike_python小 发表于 2020-6-5 15:25:35

为啥没名字能起 发表于 2020-6-5 15:23
主要是想让大佬解释下 为什么逗号、and都可以成功跑起来,而用加号就不行呢?这串能跑起来的代码我已经能 ...

import random
name = random.randint(1,10)
abc = input ('请输入数字:')
guess = int(abc)
time = 5
while guess!=name and time>0:
    input ('again')
    guess = int(abc)
    time = time-1
    if guess == name:
      print('yes')
    else:
      if guess>name:
            print('no')
      else:
            print('no2')
      if time==0:
            print('231212')
      else:
            time1 = str(time)
            print('iodjsigij'+time1)

这样也行

这个最佳吧

为啥没名字能起 发表于 2020-6-5 15:25:54

qiuyouzhi 发表于 2020-6-5 15:23
把+号改成,就行了,因为字符串不能和数字放在一起,但也可以通过str(times),把times转换为一个字符串,实 ...

就是加号的意思是把两个字符串相连是么?文字和数字,或者是文字和被赋值的变量是不可以相加的。
是这个意思么?因为是纯新手,所以问的问题很小白{:5_96:}

Twilight6 发表于 2020-6-5 15:26:14

本帖最后由 Twilight6 于 2020-6-5 15:27 编辑

为啥没名字能起 发表于 2020-6-5 15:23
主要是想让大佬解释下 为什么逗号、and都可以成功跑起来,而用加号就不行呢?这串能跑起来的代码我已经能 ...

加号对 数字来说是 算术运算符 而对字符串来说是 拼接效果,两种效果用一起就当然会报错

你想想把 一个加号呗被 同时用在 字符串和整型上 ,Python 懵逼了他到底是要用加法 还是要 拼接呢???是吧

就是这个道理


为啥没名字能起 发表于 2020-6-5 15:27:05

Twilight6 发表于 2020-6-5 15:26
加号对 数字来说是 算术运算符 而对字符串来说是 拼接效果,两种效果用一起就会报错

好的,感谢大佬

qiuyouzhi 发表于 2020-6-5 15:27:13

为啥没名字能起 发表于 2020-6-5 15:25
就是加号的意思是把两个字符串相连是么?文字和数字,或者是文字和被赋值的变量是不可以相加的。
是这个 ...

是的,但文字和变量是可以相加的(变量值类型必须是字符串)

为啥没名字能起 发表于 2020-6-5 15:28:02

Mike_python小 发表于 2020-6-5 15:25
这样也行

这个最佳吧

感谢大佬帮忙

Mike_python小 发表于 2020-6-5 15:29:03

为啥没名字能起 发表于 2020-6-5 15:28
感谢大佬帮忙

ohh
我居然不是最佳

你是手滑了吗

为啥没名字能起 发表于 2020-6-5 15:29:06

Twilight6 发表于 2020-6-5 15:26
加号对 数字来说是 算术运算符 而对字符串来说是 拼接效果,两种效果用一起就当然会报错

你想想把...

这个比喻的确很精准,大佬果然d大!

sunrise085 发表于 2020-6-5 15:36:13

本帖最后由 sunrise085 于 2020-6-5 15:38 编辑

手机编辑又出现乱码了。。。算了,删了。。。。

为啥没名字能起 发表于 2020-6-5 15:43:39

Mike_python小 发表于 2020-6-5 15:29
ohh
我居然不是最佳



额。。。。。。大佬,我想要的是关于这串代码为啥逗号和加号两个符号的使用会造成截然不同的效果的详细解释,不是要能够直接跑起来的代码啊{:5_96:}
页: [1]
查看完整版本: 这一串代码我爱了,你呢?