1、基础
< 左边小于右边 <= 左边小于等于右边 > 左边大于右边 >=左边大于等于右边 == 左边等于右边 != 左边不等于右边
2、if条件分支
if 条件:
条件为真时执行的操作
else:
条件为假时执行的操作
if guess == 8:
print('猜对啦')
else:
print('猜错啦')
3、while循环语法
while 条件:
条件为真时执行的操作
temp = input('请输入')
guess = int(temp)
while guess != 8:
temp = input('猜错了重新输入:')
guess = int(temp)
if guess == 8:
print('猜对啦')
else:
if guess > 8:
print('猜大啦')
else:
print('猜小啦')
4、and逻辑操作符
#Python的and逻辑操作符可以将任意表达式连接在一起,并得到一个布尔类型的值
>>> 1<8 and 8<9
True
>>> 1+1>1 and 3-1<3
True
5、random()模块
#random()模块里有一个函数randint(),ta会返回一个随机的整数
>>> from random import *
>>> x = randint(1,10)
>>> print(x)
3
1、数值类型
布尔类型 (True/False)
整型 (int)
浮点型 (float)
e记法:e = 10 例如:15e4 == 150000.0
2、相互关系
整数int =》浮点数float
#会在整数后加上一位小数
>>> float(5)
5.0
浮点数float =》整数int
#会直接将小数点后的数据砍掉
>>> int(5.99)
5
字符串str =》整数int
#只可转换数据字符串,不可转化其他字符串
>>> int('123')
123
>>> int('一二三')
Traceback (most recent call last):
File "" , line 1, in <module>
int('一二三')
ValueError: invalid literal for int() with base 10: '一二三'
>>>
3、如何获得关于变量类型的信息
type()
#获取变量类型的BIF
>>> type('一二三')
<class 'str'>
>>> type(123)
<class 'int'>
isinstance(变量名,数据类型)
#判断变量名是否为对应类型,返回布尔值
>>> isinstance('一二三',int)
False
>>> isinstance(123,int)
True
>>> isinstance(123.321,float)
True
1、算术操作符
(+)加
(-)减
(*)乘
(/)除
(%)求余数
(**)幂运算
(//)地板除法,即舍弃余数
>>> 1 + 1
2
>>> 2 - 1
1
>>> 10 * 8
80
>>> 10 / 8
1.25
>>> 10 % 8
2
>>> 10 ** 2
100
>>> 10 // 8
1
注意点
幂运算中前面有负号的,先幂运算再加负号;后面有负号的,即求负的幂
>>> -2 ** 3
-8
>>> 2 ** -3
0.125
2、比较操作符【根据比较内容的真假,返回布尔值】
(<)
#左边小于右边
>>> 1 < 2
True
(<=)
#左边小于等于右边
>>> 1 <= 2
True
(>)
#左边大于右边
>>> 1 > 2
False
(>=)
#左边大于等于右边
>>> 1 >= 2
False
(==)
#左边等于右边
>>> 1 == 2
False
!=
#左边不等于右边
>>> 1 != 2
True
3、逻辑操作符
and
#两边都为真时,即为真;两边有一边为假时,即为假
>>> 1 < 2 and 2 < 3
True
>>> 1 < 2 and 2 > 3
False
or
#两边有一边为真时,即为真;两边都为假时,即为假
>>> 1 < 2 or 2 > 3
True
>>> 1 > 2 or 2 > 3
False
not
#取相反布尔类型的值
>>> not (1 < 2 and 2 > 3)
True
4、优先级问题
幂运算 ↓ **
正负号 ↓ +x,-y
算数操作符 ↓ *,/,//,+,-
比较操作符 ↓ <,<=,>,>=,==,!=
逻辑操作符 ↓ not,and,or
暂无
while 'C':
print('我爱鱼C!')
自答:无限次
i = 10
while i:
print('我爱鱼C!')
i = i - 1
自答:11次
2. 请写出与 10 < cost < 50 等价的表达式
自答:50 > cost >10
Python3 中,一行可以书写多个语句吗?
自答:可以
Python3 中,一个语句可以分成多行书写吗?
自答:可以
听说过“短路逻辑(short-circuit logic)”吗?
自答:未听说过
在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?
自答:bool表示布尔类型,float表示浮点类型,str表示字符串类型
你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
自答:因为计算机语言为二进制
使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
自答:向下
我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
自答:
取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance(),你更倾向于使用哪个?
自答:type(),可以直接展示出来变量的类型
Python3 可以给变量命名中文名,知道为什么吗?
自答:不可以,因为python是外国妞
Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
自答:1.0
a < b < c 事实上是等于?
自答:a < b and b < c
不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?
自答:1/25
如何简单判断一个数是奇数还是偶数?
自答:使用%取余数,余数为0则为偶数,不为零则为奇数
请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
自答:False
还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?
自答:使用
动动手:
0.完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
自答:
import random
x = random.randint(1,10)
print('---猜字游戏升级---')
temp = input('你一共有3次机会哦,请输入一个10以内的数字:')
guess = int(temp)
cishu = 2
while cishu !=0 and guess != x:
temp = input('猜错啦,请重新输入:')
guess = int(temp)
cishu -= 1
if guess == x:
print('猜对啦!')
else:
if guess >x:
print('猜大啦!')
else:
print('猜小啦!')
print('游戏结束不玩啦!')
1.尝试写代码实现以下截图功能:
x = input('请输入一个整数:')
y = int(x)
i = 1
while y != 0:
print(i,)
i += 1
y -= 1
x = input('请输入一个整数')
y = int(x)
while y:
z = y - 1
while z:
print(' ',end='')
z -= 1
m = y
while m:
print('*',end='')
m -= 1
print()
y -= 1
3.针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。
s 为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回 True,否则返回 False。
s.isalpha() 所有字符都是字母,为真返回 True,否则返回 False。
s.isdigit() 所有字符都是数字,为真返回 True,否则返回 False。
s.islower() 所有字符都是小写,为真返回 True,否则返回 False。
s.isupper() 所有字符都是大写,为真返回 True,否则返回 False。
s.istitle() 所有单词都是首字母大写,为真返回 True,否则返回 False。
s.isspace() 所有字符都是空白字符,为真返回 True,否则返回 False。
例如:
>>> s = 'I LOVE FISHC'
>>> s.isupper()
>>> True
好了,文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧!
自答:
from random import *
y = 3
x = randint(1,10)
print('---猜字游戏升级4.0---')
guess = 0
print('您一共有3次机会哦,请输入一个数字:')
while y != 0 and guess != x:
temp = input()
if temp.isdigit():
guess = int(temp)
if guess == x:
print('猜对啦!')
else:
if guess >x:
print('猜大啦!')
else:
print('猜小啦!')
if y > 1:
print('再试一次吧')
else:
print('您的输入有误,请重新输入:')
y -= 1
print('游戏结束不玩啦!')
4.写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)
这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年。
自答:
x = input('请输入年份,判断是否为闰年:')
y = int(x)
z = y % 400
m = y % 4
l = y % 100
if z == 0:
print('是闰年,',end='')
else:
if m == 0 and l != 0:
print('是闰年,',end='')
else:
print('不是闰年哦',end='')
print('闰年多一天哦')
5.请写一个程序打印出 0~100 所有的奇数。
自答:
x = 0
while x <= 100:
y = x % 2
if y != 0:
print(x)
x += 1
else:
x += 1
6 我们说过现在的 Python 可以计算很大很大的数据,但是…真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃?
自答:while无限循环
7 爱因斯坦的难题
爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
(小甲鱼温馨提示:步子太大真的容易扯着蛋~~~)
题目:请编程求解该阶梯至少有多少阶?
自答:
x = 7
i = 1
flag = 0
while i <= 100:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
flag = 1
else:
x = 7 * (i + 1)
i += 1
if flag == 1:
print('阶梯数是:',x)
else:
print('再见')