《零基础入门学习python》学习过程(二)

第五课补充:
1. python3中,可以在同一行中使用多条语句吗?
答:可以,语句之间用;隔开

>>> a=5;b=8;c=a+b;print(c)
13

2.Python3 中,一个语句可以分成多行书写吗?
答:可以。如果有括号(小括号{}、中括号[]、大括号()),可以在任意地方断行。如果没有,需要在断开的地方添加 \ 字符,表示这一行尚未结束。例如:

>>> d={
    1,
    2,
    3
    }
>>> a=1;b=2
>>> c=a+\
   b

3.python的and操作符和C的&&操作符有何不同?
答:and 布尔”与” ——如果aFalse(a and b)返回False,否则它返回b的计算值。
or 布尔”或” —— 如果aTrue(a or b)返回True,否则它返回b的计算值。
not 布尔”非” —— 如果aTruenot a 返回False。如果aFalsenot a返回True
在C中,0&&3 = 0,1&&3 = 1。在python中,

>>> 0 and 3  #and左为假,则返回假;左为真,则返回右的值
0
>>> 1 and 3
3
>>> 0 or 3   #or左为假,则返回右的值;左为真,则返回左的值
3
>>> 1 or 3
1

由以上知识,可快速回答出 not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9等于多少?答:等于4

4.短路逻辑(short-circuit logic)?
答:逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。举个例子,表达式 a and b,需要 a 和 b 两个变量同时为真(True)的时候,结果才为真。因此,如果当 a 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 b 变量的值。
这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符。

#与上个代码做比较
>>> 3 and 0
0
>>> 3 and 1
1

5.while循环条件中只有以下情况会被看作假(注意引号和括号里边啥都没有,连空格都不要有!):
Flase None 0 “” ” () [] {}
否则被视为真,如无停止条件将会陷入死循环,直到崩溃或用户按下快捷键ctrl+c(强制结束)。

第六课:闲聊之python的数据类型

知识点汇总:
1. python3中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)
2. 数值类型:int、float、bool、complex(复数)
type()函数:获取数据类型
isinstance函数:判断数据类型,返回布尔类型的值

>>> a,b,c,d=20,5.5,True,4+3j
>>> print(type(a),type(b),type(c),type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
>>> isinstance(a,int)
True
>>> isinstance(a,float)
False

python允许为多个对象指定多个变量。例如整型对象20分配给变量a

3.e记法:浮点数的科学计数法

>>> 0.0000000000015
1.5e-12
>>> 1.5e11
150000000000.0

4.类型转换:
字符串转换为整型(不可出现中文与英文字母):int()

>>> a='520'
>>> b=int(a)
>>> b
520

浮点型转换为整型(截断处理):int()

>>> a=5.99
>>> c=int(a)
>>> c
5

字符串转换为浮点型、整型转换为浮点型:float()

>>> a='520';b=float(a);b
520.0
>>> a=520;b=float(a);b
520.0

整型、浮点型转换为字符串:str()

>>> a=5;b=str(a);b
'5'
>>> c=str(5e19);c
'5e+19'

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

>>> int(5.4+0.5)
5
>>> int(5.6+0.5)
6

6.字符串扩展:s为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。
s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。
s.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。
s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。
s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。
s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False。
7. 改进我们之前的猜数小游戏,改进要求:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。

import random

times=5
secret=random.randint(1,10)
print ("--------------猜数游戏-----------")
print("你共有%d次游戏机会!"%times)
guess=0
print("请输入数字:",end="")
while (guess!=secret) and (times>0):
    temp=input()
    while not temp.isdigit():
        temp=input("抱歉,您的输入有误,请重新输入一个整数:")
    guess=int(temp)
    if guess==secret:
        print("猜中了")
        print("你赢了,游戏结束")
        break
    else:
        if guess>secret:
            print("猜大了")
        else:
            print("猜小了")
        times=times-1
        if times==0:
            print("失败,你没有游戏机会了")
            break
        else:
            print("你还剩%d次游戏机会!"%times)
            print("再试一次吧:",end="")

end=""的作用为在print字符串末尾添加一个空字符串,而不是默认情况下的换行符。这样正好与input()输入显示在一行。只在python3版本中有用,2.*版本不支持。

第七课:python的常用操作符

知识点汇总:
1. python3支持“+=”“-=”“*=”“/=”“//”“%”“**”,值得注意的是,///操作符在python3中分别实现真除法和floor除法,真除法得到的是除法操作真正的结果,无论任何类型都会保持小数部分,而floor除法则总会省略掉结果的小数部分,剩下最小的能整除的部分,如果有浮点型则返回浮点型,如果是整数则返回整数。
**操作符表示底数的几次幂

>>> 10 / 8
1.25
>>> 10 // 8
1
>>> 3.0 // 2.0
1.0
>>> 3 ** 2
9

2.python支持算术操作符(+ - * / //)优先级运算,先括号内再括号外,先乘除再加减。
3.幂运算操作符**比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。

>>> -3 ** 2
-9
>>> 3 ** -2
0.1111111111111111

4.逻辑运算符:not > and > orand 同真为真,or 同假为假。
5.常用操作符优先级排列:

常用操作符优先级问题

6.如何判断一个数的奇偶性?使用%:能被2整除为偶数,即x%2==0,否则为奇数。则打印出0~100所有奇数为:

print("打印0~100中所有奇数:")
num = 0
while num <= 100:
    if (num % 2 != 0):
        print(num,end=",")
    num += 1

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)  #根据题意,x一定是7的整数倍,所以每次乘以7
    i+=1
if flag==1:
    print("阶梯数是:",x)
else:
    print("在程序限定范围内找不到答案!")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值