python入门(补充)

python基础(补充)

  1. 赋值方式 (之前介绍过增量赋值)
  1. 链式赋值

y=1

y=x

y=x=a=b=c=1 (id相同)

  1. 交叉赋值 (m,n值交换)

m=1

n=2

x=m

m=n

n=x

m=1

n=2

m, n=n, m

  1. 变量的解压

salaries = [11,12,13,14,15]

mon1_sal=salaries [0]

……

mon5_sal=salaries [4]

mon1_sal, mon2_sal, mon3_sal, mon4_sal, mon5_sal = salaries

注:左右数量必须一一对应,否则报错

mon1_sal, xxx, xx, xx, mon5_sal = salaries

mon1_sal, _, _, _, mon5_sal = salaries (约定‘_’代表抛弃的变量名)

*_, mon5_sal = salaries(‘*’代表所有)

  1. input () for python2, python3
  1. python3, 只有 input(); input()将用户输入的内容全部存为字符串类型
  2. python2

raw_input() 等同于 python3 的input();将用户输入的内容全部存为字符串类型,不考虑输入类型。是python 2 的主要输入交互方式。

input() , 必须输入明确的数据类型,且输什么存什么。

  1. while (条件循环)  条件:

循环体

   else:

#若循环完毕后 while 没有被break打断,else所接的代码才被执行(最后被执行); 用处不大

  1. 身份运算是is;==不是身份运算
  1. and or not 从左向右直行

False or True and False or True

False   or   True and False or True # 取第一个运算符看左右,若仅凭左边和运算符可以判断,右边的式子可忽略, True

True    and     False or True # 重复上一步, True

                False or True # 重复上一步, True

所以, 结果为True

  1. pass #什么都不做,可以做占位符

if 条件:

       pass

elif 条件:

pass

   elif 条件:

       pass

   # 若无pass/循环体,系统报错; if 后面可不接else/ elif;if中只执行一层代码。

数据类型(数字,字符串)

  1. 数据类型学习重点
  1. 基本使用

用途

定义方式

常用操作 + 内置方式

  1. 总结

存一个值or 多个值(值都是什么类型的)

有序or无序

可变or 不可变

** 可变==值变,id不变==不可hash; 不可变==值变,id变==可hash

print(hash(10)) =》10 可hash

print(hash ([1,2,3]) ) =》报错,list不可hash

  1. 整型 int

age = 10   #age = int(10); 造一个整数10,赋给age

right: int (‘10’), int (10)

wrong: int (’10.3’), int (10.3)

常用操作:+ - * /

无内置方式

可存一个值, 不可变,可hash, #有序无序不使用

  1. 进制转化

10 = 1*10^1+0*10^0=10  #10在十进制中为10

10 = 1*2^1+0*2^0=2  #二进制

10 = 1*8^1+0*8^0=8  #八进制

10 = 1*16^1+0*16^0=16  #十六进制 0-9, A, B, C, D, E, F

bin (3) =》 0b11 #十进制转化为二进制, python的内置函数

oct (8) =》 0o10 #十进制转化为八进制,python的内置函数

hex (16) =》 0x10 #十进制转化为十六进制,python的内置函数

  1. 浮点型 float

height = 1.81   #height = float(1.81); 造一个浮点数,赋给height

常用操作:+ - * /

无内置方式

可存一个值, 不可变,可hash, #有序无序不使用

  1. 字符串

用途:存放描述性的数据,一个字符串只存一个值(等号右边); python没有字符类型;‘a’亦为字符串

定义:在单双三引号内的一串字符  #三引号里可放多行字符

name=‘egon’  # name = str (‘egon’)

str(10) # type(str(10)) =》 str 

常用操作

   **优先掌握的操作:

#1、按索引取值(正向取+反向取) :只能取, 不可以更改

    正向取:

    name =’egon’

    print(name[0]) =》 e

    #从0开始,超范围报错, 取出的字符为字符串类型

    反向取:

    name =’egon’

    print(name[-1]) =》 n

    #从-1开始,超范围报错, 取出的字符为字符串类型

#2、切片(顾头不顾尾,步长)

    默认步长为1(向右移动)

    msg = ‘alex say my name is sa’

    print (msg[0:4]) =》alex

    print (msg[0:6:2]) =》ae (空格)

    print (msg[3:1:-1]) =》xe

    print (msg[-1:-5:-1]) =》as s

    print (msg[-1:-5:1]) =》无输出

    msg[:] =》‘alex say my name is sa’

    msg[::1] =》‘alex say my name is sa’

    msg[::-1] =》‘sa si eman ym yas xela’

#3、长度len  #len() 可用于字符串,也可用于其他数据类型

    print(len(msg)) =》字符个数

#4、成员运算in和not in

    print (‘a’ in msg) =》 True

    print (‘alex’ in msg) =》 False

#5、移除空白(去除左右两边的空白)strip

    默认:空白

    s = ‘**egon***’

    print(s.strip())=》**egon***

    print(s.strip(‘*’))=》egon #s.strip()不改变s的值, s为不可变类型

    name = input(‘用户名>>: ‘).strip()

    name.strip(‘*”).strip(‘#’)

#6、切分split (用于有规律的字符串)

    info = ‘egon:123:admin’ 

    res= info.split(‘:’)

    res  =》['egon', '123', 'admin'] #输出类型为list

    cmd = ‘get|a.tex|32123123’

       print(cmd.split(‘|’) =). ['get', 'a.tex', '32123123']

#7、循环(循环取值)

    msg = ‘alex’

    i = 0

    while True:

        if i < len(msg):

            print(msg[i])

            i+=1

        else:

            break

  msg=’alex’

  i=0

  while i <len(msg):

      print(msg[1])

      i+=1

  msg =’ale’    =》   a

  for item in msg:  =》    l

      print(item)   =》   e

   

  for   in   : #可用于字符串,列表,字典,不可用于数字(1111)

原文地址:https://www.cnblogs.com/GeorgeJ/p/9375414.html