Python3基础

基本操作

in / not in

a in / not in b
返回True和False

index 索引

0~len(x)-1			#顺序索引
-len(x)~-1			#反向,注意第一个为-len(x)最后一个为-1
					#当作首位减一,退到最后一个

slice 切片

x="abcdefg"
y=x[1:5:1]			#y="bcde"

print()

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

在这里插入图片描述
调用参数输出

print("第{}期,当期存入{}元,账户累计{}元".format(nper,current_money,total_money))

格式化输出

>>> pi = 3.141592653
>>> print('%10.3f' % pi) #字段宽10,精度3
     3.142
>>> print("pi = %.*f" % (3,pi)) #用*从后面的元组中读取字段宽度或精度
pi = 3.142
>>> print('%010.3f' % pi) #用0填充空白
000003.142
>>> print('%-10.3f' % pi) #左对齐
3.142     
>>> print('%+f' % pi) #显示正负号
+3.141593

在这里插入图片描述
转换类型 含义

d,i 带符号的十进制整数
o 不带符号的八进制
u 不带符号的十进制
x 不带符号的十六进制(小写)
X 不带符号的十六进制(大写)
e 科学计数法表示的浮点数(小写)
E 科学计数法表示的浮点数(大写)
f,F 十进制浮点数
g 如果指数大于-4或者小于精度值则和e相同,其他情况和f相同
G 如果指数大于-4或者小于精度值则和E相同,其他情况和F相同
C 单字符(接受整数或者单字符字符串)
r 字符串(使用repr转换任意python对象)
s 字符串(使用str转换任意python对象)

字符串的两种格式化输出方法:
1)%

print ('我叫%s, 身高%scm'  % (name,height))
#后面的内容依次代替前面的%s,另外还有%d、%x、%f等等

2)format

print('姓名是 {},年龄是 {}'.format('Tom',20))
print('姓名是:{1},年龄是:{0}'.format(20,'Tom'))
print('姓名是:{name},年龄是:{age}'.format(name='Tom',age=20))

print('姓名是:{0:*^11}\n年龄是:{1:*^11}'.format('Tom',20))
#姓名是:****Tom****
#年龄是:****20*****
^是居中,< >分别为左对齐和右对齐

input()

Python3将Python2的input()和raw_input()整合,Python3的input()得到的是字符串
可以通过类型转换得到想要的类型

a=int(input())
print(type(a))				#int

一次输入多个变量(利用eval()或map())

a,b=eval(input())			#输入不同变量用逗号隔开
print(a,b)

a,b,c=map(str,input().split(','))	#输入多个字符串用逗号隔开
a,b,c=map(int,input().split())		#输入多个整数用空格隔开

list列表

列表是一个容器,类似于数组但是里面数据类型(什么类型都支持)可以不一样
在这里插入图片描述
列表的运算:
在这里插入图片描述
比较运算:
在这里插入图片描述
通过s与m的比较得出,若进行><判断,则相应位置的数据类型要一致

list与str的区别
在这里插入图片描述
list能够改变其中单个的值(和数组一样),str不能

切片赋值
在这里插入图片描述当步数为1时
可以直接赋值(被替换的和替换的长度可以不一致),不影响其他位
步数不为1时
长度必须一致

列表的属性方法

L.index(v[,begin[,end]])		#从下标begin开始至end结束查找v并返回其下标
L.sort()						#排序,默认为升序,L.sort(reverse=True)为降序
L.reverse()						#列表反转
L.pop([index])					#删除下标为index的元素,不加index默认删除最后一个元素,有点像出栈
更多可查help(list)

列表推导式(用可迭代对象来生成列表元素)

语法:
[表达式 for 变量 in 可迭代对象 if 条件表达式]
if可无
L= [x**2 for x in range(1,11) if x%2==0]
#[4,16,36,64,100]

列表推导式的嵌套

语法:
[表达式1 for 变量1 in 可迭代对象1 (if 条件表达式1) for 变量2 in 可迭代对象2 (if 条件表达式2)]
L=[x*y for x in [1,2,3] for y in [3,2,1]]
#[3,2,1,6,4,2,9,6,3]	x中每一个都乘以y中每一个

元组 tuple

元组就是不能被改变的列表

区别在于:
t=(1,2,3)		#元组用小括号
t=10,			#即使只有一个元素也要加逗号,与整型区别
t=(10,)			#type(t)=tuple

字典 dict

内容包括键值key和值value,字典里key是唯一的,value不唯一,通过key来得到value

格式:
key:value
d={}			#空字典
d=dict()		#空字典
d={"age":20,"name":"zhangsan"}	#创建字典
d[age]			#20

key可以是任意数据类型(list、dict、set(集合、我没看)除外)

字典的遍历(用items())

d={1:100,2:200,3:300}
for k,v in d.items()
	print(k,":",v)

结果
在这里插入图片描述

d={1:100,2:200,3:300}
for k in d.keys()					#keys()
	print(k)						#输出键

d={1:100,2:200,3:300}
for v in d.values()					#values()
		print(v)					#输出值

添加和修改字典的元素

d={}		#创建空字典
d["name"]="zhangsan"	#key没有为name的,故添加
d["name"]="xiaoming"	#已经key为name则修改

字典推导式

number=[1,2,3,4]
name=["a","b","c","d"]
people={number[i] : name[i] for i in range(4) if number[i]%2==0}
#与列表类比

深浅拷贝

浅拷贝
在这里插入图片描述
L2实际上是指向L1,并没有给L2分配实际空间

深拷贝(要导入copy模块)
在这里插入图片描述
单独分配了空间故L改变时L2不改变

range()

range([start,] stop [,step])
start默认为0,step默认为1
常用用法(与for)

for i in range(1,10):
	print(i**2)		#结果为1 4 9...
range(1,5)			#[1,2,3,4]
print(range(1,5))	#打印为range(15)
ran=range(1,5)
r=list(ran)
print(r)			#打印为[1,2,3,4]

为什么会出现上述情况?
因为range()返回的不是列表,而是一个可迭代对象
list()函数是迭代器,将range()返回的对象变成列表

split()

str1.split(m[,num])[[n]]	#返回值为列表
m为分隔符,即遇到m就分割
num为分割次数,省略即分割所有
[n]表示取分割后下标为n的一项

利用split()可将字符串转化为列表

reverse()

reverse()用于反向列表中的元素
a=[1,2,3,4,5]
a.reverse()					#[5,4,3,2,1]
需注意的是reverse()没有返回值,故
print(a.reverse())			#None

center()

格式:
str.center(width[, fillchar])		#width为总宽度
									#fillchar当然是填充字符
center()用于将字符串居中且填充某字符

a="python"
a.center(10,*)						#**python**

随机函数

import random

random.choice("abc123")		#在abc123中随机选择一个字符
random.random()				#[0,1)中随机生成一个实数
random.randrange(1,100,4)	#[1,100]生成的数为1+4n,14可省
random.randint(a,b)			#[a,b]内随机生成一个整数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值