插曲之变量:
0、 变量名就像是我们现实社会的名字,把一个值给一个名字时,ta会存储子在内存中,称之为变量(variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”。
1、不过python与大多数其他计算机语言的做法稍有不同,ta并不是把值存储在变量中,而更像是把名字贴在值的上边。
2、所以有些python程序员会说“python”没有“变量”,只有“名字”。
需要注意的地方:
0、在使用变量之前,需要对其先赋值。
1、变量名可以包括字母、数字、下划线,单变量名不能以数字开头。
2、字母可以是大写或小写,但大小写时不同的。也就是说fishC和FishC对于Python来说时完全不同的两个名字。
3、等号(=)是赋值的意思,左边是名字,右边是值,不要写反咯。
4、变量的名字理论上可以取任何合法的名字,但作为一个优秀的程序员,请尽量给变量取一个专业一点儿的名字:
t = '小甲鱼'
xxoo = '小甲鱼'
teacher = '小甲鱼'
插曲之字符串:
1、到目前为止,我们所认知的字符串就是引号内的一切东西,我们也把字符串叫做文本,文本和数字是截然不同的,咱看例子:
5+8
'5'+'8'
2、要告诉python你在创建一个字符串,就要在字符两边加上引号,可以是单引号或者双引号,python女士表示不挑剔。但必须成对,你不能一边单引号,另一边却花心的用上双引号结尾。
3、如果字符串中需要出现单引号或双引号怎么办?
— 例如我想打印字符串:Let’s go!
4、有两种方法,第一种比较常用,就是使用我们的转义符号(\)对字符串中的引号进行转义:
'Let\'s go!'
5、还有一种方法小甲鱼卖个关子, 让大家先思考一下,在课后习题里边会有举例讲解。
原始字符串:
1、好像反斜杠是一个好东西,但不妨试试打印:
str = 'C:\now'
2、我们可以用反斜杠对自身进行转义:
str = 'C:\\now'
2、但如果对于一个字符串中有很多个反斜杠:
str = 'C:\Program Files\Intel\Wifi\Help'
3、原始字符串的使用非常简单,只需要在字符串前边加一个英文字母r即可:
str = r'C:\now'
长字符串:
1、如果希望的得到一个跨越多行的字符串,例如:
我爱鱼C,
正如我爱小甲鱼,
他那呱唧呱唧
呱唧呱唧
呱唧呱唧的声音,
总缠绕于我的脑海,
久久不肯散去……
2、着我们就需要使用三重引号字符串!
练习:
0. 请问以下代码会打印多少次“我爱鱼C!”
while 'C':
print('我爱鱼C!')
死循环:无限次
- 请问以下代码会打印多少次“我爱鱼C!”
i = 10
while i:
print('我爱鱼C!')
i = i - 1
While循环只适用于非死循环中,若为死循环则执行无限次。
注:最后结果只能为0可结束循环。
- 请写出与 10 < cost < 50 等价的表达式。
答:10 < cost and cost < 50
- Python3 中,一行可以书写多个语句吗?
答:可以,用分号隔开。
- Python3 中,一个语句可以分成多行书写吗?
答:可以,用\续行 ‘‘‘ ()等都可以。
- 请问Python的 and 操作符 和C语言的 && 操作符 有何不同?【该题针对有C或C++基础的朋友】
&& 操作符只能返回【逻辑值】: 0 或 1
and 操作符返回的是【实际值】
- 听说过“短路逻辑(short-circuit logic)”吗?
在Python中:
1.对于纯and语句,如果每一个表达式都为真,则返回最后一个表达式的实际值(因为要一直匹配到最后一个表达式,才能知道该表达式是否为真);如果有一个表达式为假,则返回第一个假表达式的实际值(因为根据第一个为假表达式就可以知道整个表达式为假了,没必要再看后面的表达式了)。例如:1 and 2 返回 2;3 and False 返回 False;1 and 0 and 3 and 5,有一个0为假,其他表达式都不用看,直接知道返回值为0,实际分析过程:((1 and 0) and 3 )and 5。
2.对于纯or语句,如果每一个表达式都为假,则返回最后一个表达式的实际值;如果有一个表达式为真,则返回第一个真表达式的实际值。例如:1 or 0 返回1;False or 3 or 0返回3。
3.对于and和or混合语句,逐个分析。例如:(False and 3 )or( 9 and 0) or 7 or 4 返回 7。注意:逻辑运算符优先级:not>and>or;分析:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9【解】(not 1) or (0 and 1 )or (3 and 4) or (5 and 6) or (7 and 8 and 9)返回:4。这便是所谓的“短路逻辑”,类似于分析串并联电路中各个元件是否正常工作一样。
动动手:
- 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
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()
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("游戏结束,不玩啦^_^")
自改版:
import random
secret = random.randint(1,10)
print('--------猜数字的小游戏--------')
temp = input('猜一猜我现在心里想的数字:')
guess = int(temp)
if secret == guess:
print("厉害了,一次就猜中了!")
else:
if guess>secret:
print("大了,大了!")
else:
print("小了,小了!")
i=3
while guess != secret and i:
temp = input('哎呀,猜错了,请重新输入吧:')
guess = int(temp)
if guess ==secret:
print("这都能猜出来,绝了!")
print("哈哈哈,猜对了也没有奖励!")
else:
if guess>secret:
print("大了,大了!")
else:
print("小了,小了!")
i=i-1
print("游戏结束,不玩了!")
- 尝试写代码实现以下截图功能:
figure = int(input('请输入一个整数:'))
while figure:
print(figure)
figure = figure-1
- 尝试写代码实现以下截图功能:
figure = int(input('请输入一个整数:'))
while figure:
print(" "*(figure-1),end = '')
print("*"*figure)
figure = figure-1