Crossin的编程教室

标题: 【Python 第5课】变量 [打印本页]

作者: iamocean    时间: 2013-7-28 21:49
标题: 【Python 第5课】变量
本帖最后由 iamocean 于 2013-7-28 21:52 编辑

昨天说到,需要让程序理解我们输入的东西。那首先,就需要有东西把我们输入的内容记录下来,好为接下来的操作做准备。Python之神说,要有变量!于是就有了变量。


变量,望文生义,就是变化的量。python里创建一个变量的方法很简单,给它起个名字,然后给它一个值。举起几个栗子:
  1. name = 'Crossin'
  2. myVar = 123
  3. price = 5.99
  4. visible = True
复制代码
“=”的作用是把右边的值赋予给左边的变量。




这里说一下另外一个概念,叫做“数据类型”,上面4颗栗子分别代表了python中较常见的四种基本类型:

字符串 - 表示一串字符,需要用''或""引起来

整数

浮点数 - 就是小数

bool(布尔) - 这个比较特殊,是用来表示逻辑“是”“非”的一种类型,它只有两个值,True和False。(注意这里没有引号,有了引号就变成字符串了)


再次用到我们熟悉的print。这次,我们升级了,要用print输出一个“变量”:
  1. name = 'Crossin'
  2. print name
复制代码
看到结果了吗?没有输出“name”,也没有报错,而是输出了“Crossin”。现在是不是能想明白一些,为什么之前print一段文字没加引号就会报错,而print一个数字就没有问题呢?


它叫变量,那就是能变的。所以在一次“赋值”操作之后,还可以继续给它赋予新的值,而且可以是不同类型的值。
  1. a = 123
  2. print a
  3. a = 'hi'
  4. print a
复制代码
“=”的右边还可以更复杂一点,比如是一个计算出的值:
  1. value = 3 * 4
  2. print value
  3. value = 2 < 5
  4. print value
复制代码
甚至,也可以是input():
  1. name = input()
  2. print name
复制代码
于是,我们又可以进化一下我们的小游戏了。把上次写的内容稍微改一下,加上变量:
  1. print "Who do you think I am?"
  2. you = input()
  3. print "Oh, yes! I am a"
  4. print you
复制代码
28fceb3f8794a4c2b28017930ff41bd5ac6e3958.jpg

看来程序已经知道我们的输入了。接下来,就要让它学会对不同的答案做出判断。这个我们留到下次再说。

今天是周五。我觉得吧,到周末了,大家应该远离一下电脑,多陪陪家人朋友,吃吃饭,出去走走。祝大家周末愉快!


#==== Crossin的编程教室 ====#
微信ID:crossincode

f68e6e3d269759eee7be4973b3fb43166c22df15.jpg

作者: chris    时间: 2013-9-10 13:39
为什么在第二行,如果输入双引号,就会报错,只能用单引号么
作者: 无邪    时间: 2013-9-10 19:42
chris 发表于 2013-9-10 13:39
为什么在第二行,如果输入双引号,就会报错,只能用单引号么

单引号和双引号作用一样啊 你是哪行不对
作者: chris    时间: 2013-9-11 23:20
Hello World!
Who are you?
123.456
Who do you think I am

Traceback (most recent call last):
  File "C:\Python27\chris.py", line 8, in <module>
    you = input()
TypeError: 'tuple' object is not callable
>>>
这是报错的
作者: tidusboluo    时间: 2013-9-12 15:05
num=123.456
print num
num='hello'
print num
print 'Who do you think I am?'
you=' '+input()
print 'oh,yes!I am a'+you


F5后结果如下,果然能用加号~~~
>>>
123.456
hello
Who do you think I am?
'idiot'
oh,yes!I am a idiot
>>>
作者: yonghu798302601    时间: 2013-9-13 20:38
在回答问题输入的时候  如果是数字以外的字符  ,需要加上引号
作者: Autumn    时间: 2013-9-29 19:39
请问我要怎么重新run一段刚运行过的代码?。。因为我每个小游戏要玩两次,每次都去开原文件,很烦的~
作者: 海岸上的猪头    时间: 2013-10-5 23:12
LZ加油啊,顶你
作者: bright314    时间: 2014-3-2 17:29
结合上一节课说的
  1. you =raw_input()
复制代码
可以不用添加引号,直接输入即可输出啦,哈哈哈

57.png (10.28 KB, 下载次数: 580)

57.png


作者: crossin先生    时间: 2014-3-3 11:59
bright314 发表于 2014-3-2 17:29
结合上一节课说的可以不用添加引号,直接输入即可输出啦,哈哈哈

是的
作者: fuyuanjun12    时间: 2014-6-10 16:47
只在IDLE中能运行..cmd中总是闪退..compileonline中在input那行总是error,why?

作者: crossin先生    时间: 2014-6-10 18:29
fuyuanjun12 发表于 2014-6-10 16:47
只在IDLE中能运行..cmd中总是闪退..compileonline中在input那行总是error,why?

compileonline确实对input的支持有问题
cmd闪退不清楚
作者: 果冻    时间: 2014-6-22 16:21
  1. #! /usr/bin/env python
  2. #coding=utf-8

  3. print "Who do you think I am?"
  4. you = raw_input()
  5. print "Oh, yes! I am a " + you
复制代码

作者: wikilike7    时间: 2014-7-29 13:16
本帖最后由 wikilike7 于 2014-7-29 13:18 编辑
  1. #-*- coding:UTF-8 -*-
  2. print 'Who do you think i am?'
  3. you = raw_input()
  4. print 'oh,yes!i am a', you
复制代码

作者: daiming    时间: 2015-1-3 20:41
这步一直过不去,显示语法错误。。。

QQ截图20150103204012.jpg (73.34 KB, 下载次数: 436)

QQ截图20150103204012.jpg


作者: daiming    时间: 2015-1-3 20:42
这步一直出现问题

QQ截图20150103204012.jpg (73.34 KB, 下载次数: 394)

QQ截图20150103204012.jpg


作者: 木头不木    时间: 2015-1-4 13:14
做好了

360截图20150104131450324.jpg (23.61 KB, 下载次数: 410)

360截图20150104131450324.jpg

360截图20150104131509628.jpg (30.93 KB, 下载次数: 411)

360截图20150104131509628.jpg


作者: crossin先生    时间: 2015-1-4 17:13
木头不木 发表于 2015-1-4 13:14
做好了


作者: cross    时间: 2015-4-20 15:26
不错哦
作者: catherinemic    时间: 2015-12-18 19:01
做好啦~~

Python2.png (8.5 KB, 下载次数: 490)

Python2.png


作者: 德坤    时间: 2016-3-24 10:21
chris 发表于 2013-9-11 23:20
Hello World!
Who are you?
123.456

num = 123.456
print 'num'
print'Hello World'
print 'Who are you?'
you = raw_input()
print 'you'
print ' Who do you think I am'
你这样试试
作者: 追风    时间: 2016-4-27 16:57
Autumn 发表于 2013-9-29 19:39
请问我要怎么重新run一段刚运行过的代码?。。因为我每个小游戏要玩两次,每次都去开原文件,很烦的~ ...

虽然是在13年发的问题,还是想说一下(其实是自检),在IDLE中file>open,点开你第一次保存的文件,就可以再次运行了,在保存的时候,记得后缀是.py
作者: 追风    时间: 2016-4-28 10:14
标题: 这里发现一个问题,如果用input()就不会出现007而是7
本帖最后由 追风 于 2016-4-28 10:17 编辑

哈哈哈

作者: crossin先生    时间: 2016-4-28 10:35
追风 发表于 2016-4-28 10:14

input是当做数字来处理,除非输入带引号的"007"
作者: 追风    时间: 2016-4-28 11:00
daiming 发表于 2015-1-3 20:42
这步一直出现问题

指令是要新建一个窗口的,不是在shell里面,你这个情况是直接在shell里面编的吧 ...
程序是要从shell中file>>new window见一个新窗口,在新窗口编程然后运行的,运行结果在shell里面显示。你出现的这个情况,是直接在shell里面写的程序然后回车的吧?

作者: 追风    时间: 2016-4-28 11:08
德坤 发表于 2016-3-24 10:21
num = 123.456
print 'num'
print'Hello World'

我不知道chris那个情况是怎么出现的,不过呢,你给的建议中,print 'you',这样输出的是you,因为这里你把you 用‘’引起来了,print会把它当字符串处理,如果不加‘’print才会把后面的you 当作变量。所以,这样显然是不对的。
作者: 追风    时间: 2016-4-28 11:14
crossin先生 发表于 2016-4-28 10:35
input是当做数字来处理,除非输入带引号的"007"

对啊!加引号就行了!
作者: 小生是良民    时间: 2018-5-7 18:18
在python3.6中好像print后面必须要加括号




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5