python基础学习2

Posted 后山人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础学习2相关的知识,希望对你有一定的参考价值。

python中的运算符

1、算术运算符:用来做算术运算的符号

    ①、+ :求和,也可以做连接符 

    ②、 - :求差

    ③、 * : 求积

    ④、 / :求商

    ⑤、% :取余

    ⑥、//  :取整

    ⑦、**  :次方

    注意:只能是数值

print(3*3) #求积结果:9
print(9/2) #相除结果:4.5
print(3**4) #3的4次方,结果:81
print(9//4) #小数部分直接丢掉,取整结果:2
print(13%3) #取余结果:1

  运行结果是

9
4.5
81
2
1

  比较运算符:用来比较(值只可能是布尔类型[真True或假False])

    ==    >    <    >=    <=    !=(不等于)

    注意:== 比较字符串时,比较的是字符串的内容,其他比较都是数值(字符串的长度)

score = 80
print(score > 90)
print(score == 80)
print(score >= 60)
print(score != 80)

  运行结果:

False
True
True
False

  赋值运算符

    =    +=(可以做连接符)    -=    *=    **=    /=    %=    //=

    注意:赋值运算符的左侧一定是个变量,右侧一定要有个数据

    = :将右边的值给左边;其他:将两边的结果给左边

num = 3 #赋值
num += 6  #赋值
print(num)
num2 = 3 #赋值
num2 = num2 + 6 #赋值,等同于 num+=6(num+=6效率高些)
print(num2)
a = 10
a -= 5 #等同于 a = a - 5
print(‘-=的值:‘,a)
b = 10
b *= 5 #等同于 b = b * 5
print(‘*=的值:‘,b)
c = 12
c /= 5 #等同于 c = c / 5
print(‘/=的值:‘,c)
d = 11
d %= 5 #等同于 d = d % 5
print(‘%=的值:‘,d)
e = 10
e **= 5  #等同于 e = e * e * e * e * e
print(‘**=的值:‘,e)
f = 11
f //= 5  #等同于 f = f // 5
print(‘//=的值:‘,f)

#+= 用于连接字符串
strVale = ‘我爱你‘
strVale+=‘北京‘
print(strVale)

  运行结果:

9
9
-=的值:5
*=的值:50
/=的值:2.4
%=的值:1
**=的值:100000
//=的值:2
我爱你北京

  逻辑运算符:判断2个布尔值的关系

    and且(&)    or或(|)    not非

    注意:逻辑运算符 两侧必须是布尔值

score = 80
sex = ‘男‘
print(score>=60 and sex==‘女‘)  #建议此方法
print((score>=60) & (sex==‘女‘))
print(score>=60 or sex==‘男‘)  #建议此方法
print((score>=60) | (sex==‘男‘))
print(not(score>=60))

  运行结果:

False
False
True
True
False

  位运算法符

    &    |    ^


python表达式和语句

    python表达式和语句没有明显的划分

    python表达式:是值,变量和操作符(或叫运算符)的组合。单独的一个值是一个表达式,单独的变量也是一个表达式

    python语句:是一段可执行代码。常见的有赋值语句、if语句、while语句、for语句、return语句、import语句等等...

python赋值

    变量名在首次赋值时会被创建,变量名在引用(使用)前必须先赋值

1、普通赋值

    请参照:python中的运算符 -> 赋值运算符,的讲解!

2、序列赋值

    python把赋值运算符右侧元组(列表)内的值和左侧元组(列表)内的变量相互匹配,然后每一次赋一个值

    注意:左右元素的个数要相等,一一对应!

#序列赋值
a,b=1,2  #元组赋值 等同于  (a,b) = (1,2)
print(a,b)
[c,d] = [100,200]  #列表赋值
print(c,d)
e,f,g = ‘我爱你‘
print(e,f,g)

  运算结果:

1 2
100 200
我 爱 你

  扩展解包赋值

    一个带星号的变量名 ,收集了序列中没有赋值给其他名称的所有项

    注意:只能存在一个*号,多个*会造成无法区分范围

a,b,c = ‘你好啊‘
print(a,b,c)
a1,b1,*c1 = ‘你好啊TOM‘
print(a1,b1,c1)  #你 好 [‘啊‘, ‘T‘, ‘O‘, ‘M‘]
a2,*b2,c2 = ‘你好啊TOM‘
print(a2,b2,c2)  #你 [‘好‘, ‘啊‘, ‘T‘, ‘O‘] M
#a3,*b3,*c3 = ‘你好啊TOM‘  #报错,只能有一个 * 号
#print(a3,b3,c3)

  运行结果:

你 好 啊
你 好 [‘啊‘, ‘T‘, ‘O‘, ‘M‘]
你 [‘好‘, ‘啊‘, ‘T‘, ‘O‘] M

  多目标赋值(不建议使用)

num1,num2 = 3,4  #第一种方式
print(num1)
print(num2)
num3 = num4 =5  #第二种方式
print(num3)
print(num4)

  运行结果:

3
4
5
5

  条件语句 (if 语句控制程序的执行)

    通过一条或多条语句的执行结果(True或False)来决定执行的代码块

    if 语句的判断条件可以用>、<、==、>=、<=来表示其关系。

    如果判断条件有多个时,可以使用and/or连接。

    注意:

    python 并不支持 switch 语句,所以多个条件判断, 只能用 elif 来实现。

    Python程序语言指定任何非0和非空(None)值为true,0 或者 None为false。

    每个选择分支,执行内容可以多行,以缩进来区分表示同一范围。

1、if 语句:格式一

    if 判断条件:

        执行语句……

    解释:判断条件成立(值为True),执行执行语句;否则不执行执行语句。

sex = ‘男‘
if sex == ‘男‘:
    print(‘语句执行...‘)
print(‘程序语句结束!‘)
print(‘----------------‘)
if sex == ‘女‘:
    print(‘语句执行...‘)
print(‘程序语句结束!‘)

  运行结果:

语句执行...
程序语句结束!
----------------
程序语句结束!

  if 语句:格式二

    if 判断条件:

        执行语句1…… 

    else:

        执行语句2……

    解释:其中"判断条件"成立时(非零),则执行后面的语句(执行语句1),else 为可选语句,当"判断条件"不成立时,执行(执行语句2)相关语句

    注意:此格式的if语句,肯定有一个分支会被执行...

#肯定有一个会被执行...
sex = ‘男‘
if sex == ‘男‘:
    print(‘sex的值是男‘)
else:
    print(‘sex的值是女‘)
print(‘----------------‘)
sex = ‘男‘
if sex == ‘女‘:
    print(‘sex的值是女‘)
else:
    print(‘sex的值是男‘)

  运行结果:

sex的值是男
----------------
sex的值是男

  

if 语句:格式三

    当判断条件为多个值时,可以使用以下形式:

    if 判断条件1: 

        执行语句1…… 

    elif 判断条件2: 

        执行语句2…… 

    elif 判断条件3: 

        执行语句3…… 

    else: 

        执行语句4…… 

score = 70
if score > 100:
    print(‘非常优秀‘)
elif score >80 :
    print(‘大于80分,优良‘)
elif score >=60:
    print(‘大于等于60分,良好‘)
else:
    print(‘不及格‘)

  运行结果:

大于60分,良好

  if 语句:格式四

    如果判断条件有多个时,可以使用and/or连接。

    当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比and/or要优先判断。

# 判断值是否在0~10之间
num01 = 9
if num01 >= 0 and num01 <= 10:
    print (‘Yes‘)
else:
    print (‘no‘)
print(‘----------------‘)
# 判断值是否在0~5或者10~15之间
if (num01 >= 0 and num01 <= 5) or (num01 >= 10 and num01 <= 15):
    print (‘hello‘)
else:
    print (‘undefine‘)

  运行结果:

Yes
----------------
undefine

   python 复合布尔表达式计算采用短路规则,即如果通过前面的部分已经计算出整个表达式的值,则后面的部分不再计算。

a=0
b=1
#没报错,说明 b / a > 2没执行
if ( a > 0 ) and ( b / a > 2 ):
    print ("yes" )
else:
    print ("no")
#报错, b / a > 2 执行啦
a=0
b=1
if ( a > 0 ) or ( b / a > 2 ):
    print ("yes")
else :
    print ("no")

  运行结果:

no
Traceback (most recent call last):
  File "../demoTest02.py", line 152, in <module>
    if ( a > 0 ) or ( b / a > 2 ):
ZeroDivisionError: division by zero

  if 语句:格式五

    在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。

    if 表达式1: 

        语句 

        if 表达式11: 

            语句 

        elif 表达式22: 

            语句 

        else: 

            语句 

    elif 表达式2: 

        语句 

    else: 

        语句

    注意:只有进入外层的if,才有可能执行内层的if

score = 90
sex = ‘男‘
if score > 80:
    print(‘进入国家队‘)
    if sex == ‘男‘:
        print(‘男子队‘)
    else:
        print(‘进入女子队‘)
else:
    print(‘淘汰掉...‘)

  运行结果:

进入国家队
男子队

  if 语句:格式六 (不建议使用)

    可以在同一行的位置上使用if条件判断语句

var = 100
# if后面只有一条语句,可以写在一行
if ( var  == 100 ) : print ("变量 var 的值为100")

  运行结果:

变量 var 的值为100

    注意:Python程序语言指定任何非0和非空(None)值为true,0 或者 None为false

if True:
    print(‘123‘)
if 124:
    print(‘123‘)

  运行结果:

123
123

  循环语句 (允许执行一个语句或语句组,多次)

    Python提供了两种循环语句:while循环 for循环

while循环

    判断条件为True时执行一次执行语句,然后再次判断条件。直到判断条件假False时,循环结束。

    注意:使用while循环时别忘了写条件控制语句(循环退出的条件),否则会变为死循环。

    while 判断条件:

        执行语句……

    案例1:输出0到10的整数

num01 = 0
while num01 <= 10 :
    print(num01)
    num01 += 1   #条件控制语句
print(‘循环结束...‘)

  运行结果:

0
1
2
3
4
5
6
7
8
9
10
循环结束...  

  案例2:输出0到10的偶数 

#输出0到10的偶数
num01 = 0
while num01 <= 10 :
    if num01 % 2 ==0:
        print(num01)
    num01 += 1   #条件控制语句
print(‘循环结束...‘)

  运行结果:

0
2
4
6
8
10
循环结束..

  案例3:while … else 在循环执行结束后执行 else 语句块

#while … else 在循环执行结束后执行 else 语句块
num01 = 0
while num01 <= 10 :
    if num01 % 2 ==0:
        print(num01)
    num01 += 1   #条件控制语句
else:
    print(‘循环结束...‘)

  运行结果:

0
2
4
6
8
10
循环结束..

  案例4:while 后面只有一条语句,可以写在一行

#while 后面只有一条语句,可以写在一行
#不知道循环次数时,条件用True,内部控制循环退出...
#本案例的执行结果是,死循环......
while True: print(‘循环中.....‘)

  for循环

    for  变量  in 序列: 

        语句

 注意:in:判断一个变量是否在序列中

1、简单应用

nums = [1,5,7,2,10]
for item in nums:
    print(item)

  运行结果:

1
5
7
2
10

  range() 代表整数区间

#range()只有一个参数:左边界默认从0开始,右边界为指定的值的前一个数
num1 = range(3)
for item in num1:
    print(item)
print(‘-------------‘)
#range()有两个参数,分别指定左右边界,但右边界为指定的值的前一个数
num2 = range(1,3)
for item in num2:
    print(item)
print(‘-------------‘)
#range()有三个参数,第三个参数代表步长
num3 = range(1,10,2)
for item in num3:
    print(item)

  运行结果:

0
1
2
-------------
1
2
-------------
1
3
5
7
9

  else中的语句会在循环正常执行完的情况下执行

#获得序列的索引
numbers = [1,5,7,2,10]
for item in range(len(numbers)):
    print(item)
else:
    print(‘循环结束‘)

  运行结果:

0
1
2
3
4
循环结束

  循环嵌套

  外套环循执行一次,内层循环一轮

  打印图形,外层控制行数,内层控制每行的*的个数

  ①、简单案例

for x in [‘田径队‘, ‘游泳队‘, ‘篮球队‘]:
    for y in [‘第一名‘, ‘第二名‘, ‘第三名‘]:
        print (x + y)

  运行结果:

田径队第一名
田径队第二名
田径队第三名
游泳队第一名
游泳队第二名
游泳队第三名
篮球队第一名
篮球队第二名
篮球队第三名

打印4行5列矩形*号

#打印4行5列矩形*号
for x in range(4):
    for y in range(5):
        print(‘*‘,end="")
    print()

  运行结果:

*****
*****
*****
*****

  打印8行直角三角形*号

#打印8行直角三角形*号
for j in range(1,9):
    for i in range(j):
        print("*",end="")
    print()

  运行结果:

*
**
***
****
*****
******
*******
********

  打印乘法口诀表

#打印乘法口诀表
for j in range(1,10):
    for i in range(1,j):
        print("{0}*{1}={2};	".format(i,j,j*i),end="")
    print()

  运行结果:

1*2=2;  
1*3=3;  2*3=6;  
1*4=4;  2*4=8;  3*4=12;  
1*5=5;  2*5=10;  3*5=15;  4*5=20;  
1*6=6;  2*6=12;  3*6=18;  4*6=24;  5*6=30;  
1*7=7;  2*7=14;  3*7=21;  4*7=28;  5*7=35;  6*7=42;  
1*8=8;  2*8=16;  3*8=24;  4*8=32;  5*8=40;  6*8=48;  7*8=56;  
1*9=9;  2*9=18;  3*9=27;  4*9=36;  5*9=45;  6*9=54;  7*9=63;  8*9=72;

  循环控制语句

1、break语句用来终止所在的循环语句

#num的值会随着循环增大,在增大到5的时候,遇到break,循环退出
num = 0
while True:
    if num == 5:
        break
    print(num)
    num += 1
print(‘-------------------‘)
#在嵌套循环中,break只退出,break语句所在的循环,导致整个内层循环只执行了一次
for j in range(3):
    for x in range(3):
        print(‘hello...‘)
        break

  运行结果:

0
1
2
3
4
-------------------
hello...
hello...
hello...

  continue语句用来跳出所在循环体的本次循环,继续下一次循环

#到8就跳过
num02 = 0
while num02 <= 10:
    if num02 ==8:  
        num02 +=1
        continue #在num02等于8时,退出当次循环,继续下一次循环
    print(num02 )
    num02 +=1
print(‘程序结束‘)

  运行结果:

0
1
2
3
4
5
6
7
9
10
程序结束

  



以上是关于python基础学习2的主要内容,如果未能解决你的问题,请参考以下文章

python 机器学习有用的代码片段

《Python学习之路 -- Python基础之切片》

学习笔记:python3,代码片段(2017)

Python学习(22):模块

python基础学习(十三)

python基础学习笔记(十三)