1.基础
1.1切片
#字符串切片
word='python'
print(word[-4:-2])#th
#列表切片
squares=[1,4,9,16,25]
print(squares[-3:])#[9,16,25]倒数三个
print(squares[::-1])#[25,16,9,4,1]步长为负,从右到左反向提取
[10,20,30,40,50,60][1:6:2]#[20,40,60]
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb
1.2杂
1.Name=‘world’
Print(‘hello’,name,sep=’###’)
>>>hello###world
2.格式化字符串
‘{a}乘以{b}等于{c}’.format(a=10,b=20,c=20*10)
10乘以20等于200
https://www.cnblogs.com/fat39/p/7159881.html(格式化)
3.
>>> a,b**=**1,2
>>> a,b**=**b,a
>>> print(a,b)
/:8/2=4.0浮点整除
//:7//2=3整除
%:7%4=3取余
4.运算符优先级
![image.png](file:///C:/Users/69492/AppData/Local/Packages/Microsoft.Office.OneNote_8wekyb3d8bbwe/TempState/msohtmlclip/clip_image001.png)
2.list
创建空的list a=[]
a=list(range(6))
[0,1,2,3,4,5]
a=list(‘ji,sheng’)
a=[‘j’,‘i’,’,’,‘s’,‘h’,‘e’,‘n’,‘g’]
-
list.append`(x)
在列表的末尾添加一个元素。相当于
a[len(a):] = [x]
。A=[‘a’,‘b’,‘c’,‘d’,‘e’]
A.append(10)
A.append([10])
A.append([1,2,3])
[‘a’,‘b’,‘c’,‘d’,‘e’,10,[10],[1,2,3]
-
list.extend(iterable)
使用可迭代对象中的所有元素来扩展列表。相当于
a[len(a):] = iterable
。A=[‘a’,‘b’,‘c’,‘d’,‘e’]
A.extend([10])
A.extend([1,2,3])
[‘a’,‘b’,‘c’,‘d’,‘e’,10,1,2,3]
-
list.insert(i, x)
在给定的位置插入一个元素。第一个参数是要插入的元素的索引,所以 a.insert(0, x)
插入列表头部, a.insert(len(a), x)
等同于 a.append(x)
。
- list.remove(x)
移除列表中第一个值为 x 的元素。如果没有这样的元素,则抛出 ValueError
异常。
list.pop
([i])
删除列表中给定位置的元素并返回它。如果没有给定位置,a.pop()
将会删除并返回列表中的最后一个元素。( 方法签名中 i 两边的方括号表示这个参数是可选的,而不是要你输入方括号。你会在 Python 参考库中经常看到这种表示方法)。
list.clear
()
删除列表中所有的元素。相当于 del a[:]
。
del
my_dict = dict([(1,‘apple’), (2,‘ball’)])
a = [-1, 1, 66.25, 333, 333, 1234.5]
del a[0]
a
[1, 66.25, 333, 333, 1234.5]
del a[2:4]
a
[1, 66.25, 1234.5]
del a[:]
a
[]
list.index
(x[, start[, end]])
返回列表中第一个值为 x 的元素的从零开始的索引。如果没有这样的元素将会抛出 ValueError
异常。 可选参数 start 和 end 是切片符号,用于将搜索限制为列表的特定子序列。返回的索引是相对于整个序列的开始计算的,而不是 start 参数。
list.count
(x)
返回元素 x 在列表中出现的次数。
list.sort
(key=None, reverse=False)
对列表中的元素进行排序(参数可用于自定义排序,解释请参见 sorted()
)。
list.reverse
()==list[::-1]
反转列表中的元素。
list.copy
()
返回列表的一个浅拷贝。相当于 a[:]
。
3.set
1.set()是无序集合
2.set()无法索引
3.set()无法更改
3.1创建
my_set = {1.0, “Hello”, (1, 2, 3)}
a = set() (创建空集,和dict()区分)
3.2增加
my_set.add(i)(增加i)
my_set.update([4,5], {1,6,8})(增加多个项)(会自动删除重复项)
3.3删除
my_set.remove(6)(只能根据内容删除)
my_set.discard(2)(在使用discard()
项目中不存在项目时,它保持不变。但是remove()
会在这种情况下引发错误。)
print(my_set.pop())(无法确定将弹出哪个项目)
4.dirt
-
空字典
-
my_dict = {}
-
my_dict = {1: ‘apple’, 2: ‘ball’}
-
my_dict = {‘name’: ‘John’, 1: [2, 4, 3]}
-
my_dict = dict({1:‘apple’, 2:‘ball’})
-
my_dict.pop(i) (弹出,同list)
my_dict.remove(i)(删除返回字典同list)
my_dict.del(i) (字典中相当于remove)(与list不同)
my_dict.clear()(全部)
通过字典和列表创造表格 r1 = {"name":"js","age":18,"salary":30000,"city":"北京"} r2 = {"name":"js2","age":19,"salary":20000,"city":"上海"} r3 = {"name":"js3","age":20,"salary":10000,"city":"深圳"} tb = [r1,r2,r3] #获得第二行的人的薪资 print(tb[1].get("salary")) #打印表中所有的的薪资 for i in range(len(tb)): # i -->0,1,2 print(tb[i].get("salary")) #打印表的所有数据 for i in range(len(tb)): print(tb[i].get("name"),tb[i].get("age"),tb[i].get("salary"),tb[i].get("city"))
5.练习
1.#给定一个整数 n,打印 3 到 n 以下的所有质数(质数是只能被 1 和它自身整除的数)
import math
n=input('输入一个数')
n=int(n)
for i in range(3,n):
a=1
for j in range(2,int(math.sqrt(i))+1):
if i%j==0:
a=0
if a==1:
print(i,end=' ')
2.#输出所有的三位水仙花数,其各位数字立方和等于该数本身。
for i in range(100,1000):
if ((i//100)**3+(i//10%10)**3+(i%10)**3)==i:
print(i)
3.#给定一个 n 位(不超过 10)的整数,将该数按位逆置,例如给定 12345 变成54321,12320 变成 2321.
a=input('输入一个数')
b=int(a[::-1])
print(b)
4.#给定一个整数 n,判断是否是质数(质数是只能被 1 和它自身整除的数)
n=input('输入一个数')
n=int(n)
def zhishu(n):
for i in range(2,n):
if(n%i==0):
return False
else:
return True
if n==1:
return True
print(zhishu(n))
5.输入某年某月某日,判断这一天是这一年的第几天?(提示:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 2 时需考虑多加一天。)
import datetime
year=int(input('输入年份:'))
month=int(input('输入年份:'))
day=int(input('输入年份:'))
day1=datetime.date(year,month,day)
daycount=day1-datetime.date(day1.year-1,12,31)
print('这一天是一年的第',daycount.days,'天')
6.#给定一个不大于 9 的数 n,打印 nn 乘法表
n=input('输入一个数')
n=int(n)
for i in range(1,n+1):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
7.五位数中,对称的数称为回文数,打印所有的回文数并计算个数。如:12321
a=0
for i in range(10000,100000):
if i//10000==i%10 and i//1000%10==i%100//10:#比较个位和万位 十位和千位
print(i)
a+=1
print(a)
6.简易用户管理系统
user_list=[]
def addUser():
user_dict={}
name=input('请输入新用户名:')
id=int(input('请输入新用户名微信:'))
tel=int(input('请输入新用户手机号:'))
address=input('请输入新用户地址:')
user_dict['姓名']=name
user_dict['微信']=id
user_dict['电话']=tel
user_dict['地址']=address
user_list.append(user_dict)
print(user_list)
def findUser():
name=input('请输入用户名:')
for i in user_list:
if name==i['姓名']:
for j in i.values():
print(j,end=' ')
print()
def findAll():
print('姓名','微信','电话','地址')
for i in user_list:
for j in i.values():
print(j,end=' ')
print()
def delUser():
name=input('请输入用户名:')
for i in user_list:
if i['姓名']==name:
user_list.remove(i)
def updataUser():
name=input('请输入要修改的用户名:')
for i in user_list:
if i['姓名']==name:
name=input('请输入新用户名:')
id=input('请输入新用户名微信:')
tel=input('请输入新用户手机号:')
address=input('请输入新用户地址:')
i['姓名']=name
i['微信']=id
i['电话']=tel
i['地址']=address
def main():
while True:
a=int(input('请输入操作序号:'))
if a==1:
addUser()
elif a==2:
findUser()
elif a==3:
findAll()
elif a==4:
delUser()
elif a==5:
updataUser()
elif a==6:
break
else:
print('请输入正确操作')
if __name__=='__main__':
main()