python-day2

day2课程内容

一、条件分支

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

三、python常用操作符

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

day2疑问

暂无

day2作业

  1. 请问以下代码会打印多少次“我爱鱼C!”
while 'C':
    print('我爱鱼C!')

自答:无限次

  1. 请问以下代码会打印多少次“我爱鱼C!”
i = 10
while i:
    print('我爱鱼C!')
    i = i - 1

自答:11次
2. 请写出与 10 < cost < 50 等价的表达式
自答:50 > cost >10

  1. Python3 中,一行可以书写多个语句吗?
    自答:可以

  2. Python3 中,一个语句可以分成多行书写吗?
    自答:可以

  3. 听说过“短路逻辑(short-circuit logic)”吗?
    自答:未听说过

  4. 在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?
    自答:bool表示布尔类型,float表示浮点类型,str表示字符串类型

  5. 你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
    自答:因为计算机语言为二进制

  6. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
    自答:向下

  7. 我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
    自答:

  8. 取得一个变量的类型,视频中介绍可以使用 type() 和 isinstance(),你更倾向于使用哪个?
    自答:type(),可以直接展示出来变量的类型

  9. Python3 可以给变量命名中文名,知道为什么吗?
    自答:不可以,因为python是外国妞

  10. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
    自答:1.0

  11. a < b < c 事实上是等于?
    自答:a < b and b < c

  12. 不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?
    自答:1/25

  13. 如何简单判断一个数是奇数还是偶数?
    自答:使用%取余数,余数为0则为偶数,不为零则为奇数

  14. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
    自答:False

  15. 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?
    自答:使用

动动手:

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.尝试写代码实现以下截图功能:

python-day2_第1张图片
自答:

x = input('请输入一个整数:')
y = int(x)
i = 1
while y != 0:
	print(i,)
	i += 1
	y -= 1

2.尝试写代码实现以下截图功能:
python-day2_第2张图片
自答:

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('再见')

你可能感兴趣的:(python-day2)