补充知识及数据类型


一、补充内容
1、赋值方式:
1.1 链式赋值
x = 1
y = x
上述两行代码可简化为下面代码,更为方便并且可以继续叠加
y = x = a = b = c = 1

1.2 交叉赋值
m = 1
n = 2
如果将n和m的值相互调换常规如下写需要一个暂存的变量
temp = m
m = n
n = temp
print(m, n)
由于上述方法过于麻烦于是出现了如下简化写法,其运行结果并无差别
m, n = n, m
print(m, n)

1.3 变量的解压
将下面所有列表里的元素单独提取出来:
salaries = [11, 12, 13, 14, 15]
mon1_sal = salaries[0]
mon2_sal = salaries[1]
mon3_sal = salaries[2]
mon4_sal = salaries[3]
mon5_sal = salaries[4]
简化写法称为解压示例如下:
mon1_sal, mon2_sal, mon3_sal, mon4_sal, mon5_sal = salaries

print(mon1_sal)
print(mon2_sal)
print(mon3_sal)
print(mon4_sal)
print(mon5_sal)
注:取出的值必须与列表内一一对应,无论哪一边多或者少都会报错
如果你只想取其中一部分,可以使用_下划线来占位置,这是约定的写法。
mon1_sal, _, _, _, mon5_sal = salaries
假如只想去开头和结尾,或者只想取单独开头或者结尾,可以使用 *_ 进行
占位,这个符号表示无限量的占位直到与列表内一一对应。
mon1_sal, *_, mon5_sal = salaries
print(mon1_sal, mon5_sal)

*_, x, y = salaries
print(x, y)

2、input与raw_input
在python3中:
input() 把用户输入的内容全都存为字符串类型

在python2中: (了解即可)
raw_input() 把用户输入的内容全都存为字符串类型
input('>>: ') 必须输入明确的数据类型,输入什么就存成什么类型
int(input('>>:::::'))

3、while +else (了解即可)

count = 1
while count < 6:
if count == 4:
break
print(count)
count += 1
# break
else:
print('else的代码块只有在while循环没有被break打断的情况下才执行(最后执行)')

二、数字类型
1.基本使用
int用途:年龄,等级,各种号码等使用整数的地方。
定义方式:
age=10 #age=int(10)

float用途:身高,体重,薪资等使用小数的地方。
定义方式:
height=1.81 #height=float(1.81)

2.常用操作+内置的方法
print(bin(3)) #十进制转成二进制,0b11
print(oct(8)) #十进制转成八进制,0o10
print(10) #10
print(hex(16)) #十进制转成十六进制,0x10


3.int与float类型总结
数字类型只能存一个值
!!!数字类型为不可变:值变,id就变。

(了解:可变==不可hash,不可变==可hash)

三、字符串类型

1. 基本使用
str用途:描述性的数据,比如名字国籍学历家庭住址

定义方式:在单引号或双引号或三引号内的一串字符,三引号内可以写多行内容。
name='egon' #name=str('egon')
掌握:
str(10) #int('10')字符串


了解知识
res=str(10)
res=str([1,2,3,4])
print(res,type(res))
int('10')
res=float('10.3')
print(res,type(res))


2. 常用操作+内置的方法
优先掌握的操作:
1、按索引取值(正向取+反向取) :只能取不能修改。
name='egon你好'
print(name[0])
print(name[4])
print(name[1000])

print(name[-1])
print(type(name[-2]))
name[-1]='坏'

2、切片(顾头不顾尾,步长)
msg='alex say my name is sb'
print(msg[0:6])
print(msg[0:6:2]) #alex s
了解:
print(msg[0:5:1])
print(msg[3:1:-1])
print(msg[-1:-5:-1])
msg='alex is sb'
print(msg[0:10:1])
如果要取所有的字符可以不写开头和结尾
print(msg[:])
print(msg[::1])
print(msg[::-1])

3、长度len 用来计算字符串内字符的位数
msg='alex say my name is sb'
print(len(msg)) # 字符的个数
4、成员运算in和not in 用来检验指定字符是否在某个字符串内有。
msg='alex say my name is sb'
print('alex' in msg)
print('alex' not in msg)

5、移除空白strip 使用时.strip()括号内不加东西为默认去除空格,如果添加字符则去除添加的字符。
s='*****egon****'
print(s.strip('*'))
s=s.strip('*')
print(s)

name=' egon '
print(name.strip())

改进
name=input('用户名>>: ').strip()
print(len(name))
name=name.strip()
if name == 'alex':
print('用户名正确')

6、切分split 切分出来的字符会自动新建一个列表并储存在内
info='egon:123:admin'
res=info.split(':')
print(res,type(res))
print(res[0])

cmd='get|a.txt|32123123'
print(cmd.split('|'))

7、循环
msg='alex'

i=0
while True:
if i < len(msg):
print(msg[i])
i+=1
else:
break



msg='alex'

i=0
while True:
if i == len(msg):
break
print(msg[i])
i+=1


msg='alex'

i=0
while i < len(msg):
print(msg[i])
i+=1

msg='alex'
for item in msg: #item='l'
print(item)
for 循环是将msg内的每个字符分别赋值给item

for item in 11111: # 只有字符串,列表,字典可以使用for循环 数字类型因为不可分割不能使用。
print(item)
原文地址:https://www.cnblogs.com/zhaodafa/p/8603041.html