Hello

与c不同:

列表list [ ] c=['hello','1'] c=list([])
元组tuple ( ) c=('hello','python',99) --不可变
字典dist { } c={'陈'99} c=dict(name='age',辰='1',num='11',up=10) key:value
集合set { } c={1,2,3,4,5,6} key



1.不用定义变量

2.不用加括号

3.a++不适用---a+=1

4.函数条件后需要加 :

5. ,不合适多变量定义,需要用;

6.break 等效 continue 等效

7.\n 换行 也可输出空--print() \t 空格

8.嵌套循环的break作用于嵌套的循环中,continue结束当前循环,继续下一步

9.查看格式 print('地址',id(name),'类型:',type(name),'内容:',name)

10.输出默认为换行输出 不执行换行操作----print(*,end=' ') #输出每个元素后面跟着空格继续输出下一元素

11.退格:\b 换行:\n 纵向制表符:\v 横向制表符:\t 回车:\r tab间距:\t
print(c,'\t',end=' ')
print('C'*5) #】CCCCCC

12.小写转大写 .upper(空)

13. 可变序列: ①列表 ②字典
不可变序列: ①字符串 ②元组

14.调用函数用()
空列表 lst=[] lst=list()
空字典 d={} d=dict()
空元组 t=() t=tuple()

15.元组中嵌套列表可修改列表的值 c=(10,[1,2,8],3) c[1][0]=9 输出:(10, [1, 2, 9], 3)
进行添加 c[1].append(0) 输出:(10, [1, 2, 9, 0], 3)
进行删除操作 c[1].remove(2) 输出:(10, [1, 9, 0], 3)

16.判断是否存在元素 --in not in # print(10 in r) == #True

17.一行实现输入: a,b,c=map(int,input().split()) split()默认以空格间隔为输入 如输入格式为 3 ,4 则为x,y=input().split(',')

18.输出:
宽度:x%d

%占位符: print('f(%.1f) = %.1f'%(x,x)) // print('f(%d) = %d'%(x,x)) //print(f(%d)%x)
待输出数据不需要,
{位置,索引}: print('f({0:.1f}) = {1:.1f}'.format(x,x))

f-string : print(f'我叫{name},今年{age})

20.sum(求和函数) 例子 s=sum(a+i for i in range(1,n+1))

21.字符串 可数学运算 如 a='1' s=a*2 s=11
str函数 b=a.strip() 默认去除空格
如 c='111456python' c.strip('156') 输出:456pytho
字符串可才用c[n]查看

21.比较函数 c=[2,3,1,5,6] h=sorted(c) h=[1, 2, 3, 5, 6]
print(*sorted(map(int,input().split())),sep=",")
* 使用后面的sep,没有则输出数组形式 sep="" 输出格式连接词

22.生成式 ①列表生成式 c=[i*i for i in range(6)]
②计算--求和 s=sum(a*i for i in range(1,n+1))
③集合生成式 c={ i*i for i in range(6)}










数学运算符 + ,- ,*, / ,//(整除),%(取余),a**b(幂运算)

类型 int float bool str='类型'

类型转换 如 str c='123',转换 int(c)

不用特意定义变量类型 如 c=1000 (默认为 int 类型), c='abc'(str类型), c=1.1(float类型)

地址与类型 print( '地址:'id(c) '类型' type(C) )

输出--单双引号都可 print('') && print("") && print(c)

连接输出(变量+中文+变量) int类型需要转str 如int类型的a,b print( str(a)+'大于等于'+str(b) if a>=b else tr(a)+'小于'+str(b) )

输入--变量 c = int (input('提示语')) 不定义变量默认为str结构
类型 提示
且和或 and or

分支结构--判断--不用加括号-加冒号 if c>=a: if 条件表达体:
else: 条件执行体
if 条件执行体--嵌套:
执行体
elif(else) (条件执行体)
执行体
elif 条件表达体:
条件执行体2
else:
条件执行体

区间写法 90<=num<=100 且 and 或or

if elif--简写 print((True 内容) 判断语句 (false 内容))
(a>=b) if a>=b (a<b)

pass-- 空条件执行体 if not 否


----内置函数(不可更改) range() -----生成一个整数序列
range(stop) ------r=range(10) #[0,1,2,3,4,5,6,7,8,9] 默认从0开始r 元素间距为1
range(start,stop) ------r=range(1,10) #[1, 2, 3, 4, 5, 6, 7, 8, 9] 元素间距为1
range(start,stop,step) ------r=range(1,10,2) #[1, 3, 5, 7, 9]
起点 终点 间距
输出数组 print(list(r)) #以数列输出




使用range生成列表(开n个列表(数组)):c=[i for i in range(start,stop)]
c=[i(可运算 如i*i i+i) for i in range(1,10)] print(c) [1, 2, 3, 4, 5, 6, 7, 8, 9]
表达式 自定义变量 可迭代变量

(数组)列表(可变序列)-- 直接使用 c=['hello','1'] 调用list函数 c=list(['hello']) 从后面遍历回来,从-1开始 -N到-1

查询: 查看当前位置 c.index('hello')==0 c.index(1)==1
指定位置查找 c.index('hello',0,2) ----开区间查找

区域输出 -- 切片段-形成新的列表 区域输出 print(c[start:Stop:step]) #起点 终点 布距(可默认)
默认情况 print(c[::]) 输出全列表
倒序输出 print(c[::-1])

遍历: 判断 in && not in
for i in c: ##赋值给i

添加: 末尾添加:append()
c.append(2) # ['hello', '1', 100]

末尾至少添加一个元素(把另一个列表添加到一个列表中":扩展"):extend()
c.append(2) # ['hello', '1', 100]
c1 = [, 6, 7, 8]
c.extend(c1) # ['hello', 1, 6, 7, 8]

任意位置添加:insert
插入:c.insert(1,99) #['hello', 99, '1']

切片(切去,舍,后插入多元素):从c[1:]=c1 #['hello', 6, 7, 8]
1位置包括1,后面舍去,前面保留


删除: remove() 一次删除一个元素 重复的只能删除第一个

创建空列表: c=[] c=list()



循环结构 while 和 for-in
/ while 条件判断体: #不加括号

/ for(a)in(b) 将b的值逐一赋值给a --
for a in 'abc':
print(a) a b c
作为循环体 for i in range(5) ---循环体 从0到5
_ 为循环执行输出用


key键 值(’可中文’)
字典(可变序列) --每个元素两个成员 使用内置函数 dict c=dict(name='age',辰='1',num='11',up=10) {'name': 'age', 'now': 1, 'num': 11, 'up': 10}
(key不可重复) c={'':99}

/所有元素都是一个key-value对,key不可重复,valu可重复 ;元素都是无序的 ;key不可更改

/创建 c={'':1,'c':2,3} c=dict{name:'number',c:2} 两种赋值方法代入

/空字典 c={} 键 值

/查看 调用键查看值
① [] print(c['']) == 1 键不存在 报错:不存在 格式 字典名[key]
② get() c.get('') == 1 键不存在 None 格式 字典名.get(key)

/判断存在 print(’辰‘ in c) True

/删除 del c['num'] 删除整对 格式 del 字典名[key]

/清空 c.clear()

/添加 c['']=98 格式 [key]=Value

/修改 c['']=99 格式 [key]=value

/获取数据 ① 所有key :y = c.keys() dict_keys类型 转list类型 print(list(y))
②所有值 :y = c.values() dict_values类型 转list类型 print(list(y))
③所有键值对:y = c.items() dict_items类型 [('name', 'age'), ('', 1), ('num', '11'), ('up', 10)]
() 元组

/遍历 for i in c:
print(i) (键)
print(c[i],c.get(i)) (值)

/生成式 zip() 打包
key=['one','two','three','four']
valu=[1,2,3,4]
c={key:valu for key,valu in zip(key,valu)}


元组 --不可更改 ()
/创建 ① 使用 () c=('hello','python',99) 输出:('hello', 'python', 99)
只有一个元素,需加, c=('python',) c='python',
可省略括号 c='hello','python',99

② 使用内置函数 tuple c=tuple(('hello','python',99)) *双括号 输出:('hello', 'python', 99)

③ 空元组 c=() // c=tuple()

/定位查看 索引 c[i]

/遍历 for i in c
print(i)

集合--可改变序列 { } 只有key 没有值 key不可重复 无序
/创建 ①使用{ } c={1,1,2,2,3,3,4,5,6} 输出:{1, 2, 3, 4, 5, 6}

/其他类型转换成集合————使用 set 函数-----无序
①range转成集合 c=set(range(6)) 输出:{0, 1, 2, 3, 4, 5}
②列表转成集合 c=set([7,8,9,'python']) 输出:{8, 9, 'python', 7}
③元组转成集合 c=set((3,4,5,'python')) 输出:{3, 4, 5, 'python'}
④字符串转集合 c=set('python') 输出:{'h', 'o', 't', 'n', 'p', 'y'}

/空集合 c=set()

c={1,2,3,4,5,6,7}

/添加 add() -------一次添加一个:
c.add(8) 输出:{1, 2, 3, 4, 5, 6, 7, 8}

update() ---------至少添加一个元素:
①添加新集合到原集合:c.update({9,10,11}) 输出:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
②添加列表到集合中 :c.update(['one','two','three']) 输出:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 'one', 'three', 'two'}
③添加元组到集合中 :c.update(('four','five',16)) 输出:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 'one', 'three', 'five', 16, 'two', 'four'}


/删除 remove() ----------一次删除一个指定元素 ,如果指定元素不存在抛出异常 KeyError
c.remove(7)

discard() ---------- 一次删除一个指定元素,如果指定元素不存在不抛出异常
c.discard(7)

pop() ----------一次只删除一个任意元素
c.pop()

clear() ----------- 清空集合

/两集合的关系: c={1,2,3,4,5,6,7} c1={1,2,3} c2={6,5,4,3}
① 等与不等 == !=
②判断子集(小是大的子集) c1.issubset(c) -----True
③判断超集(大的是小的超集) c.issuperset(c1) -----True
④判断交集 c1.isdisjoint(s3) ----False (相反结果)
⑤交集 c1.intersection(c2) -----{3}
c1 & c2 -----{3}
⑥并集 c1.union(c2) -----{1, 2, 3, 4, 5, 6}
c1+c2
⑦差集 c2.difference(c1) -----{4, 5, 6} (c2 - c1)
c2-c1
⑧对称差集 c1.symmetric_difference(c2)) -----{1, 2, 4, 5, 6} (-同)
c1^c2


字符串: c='pythonn' c1="pythonn" c=2'''pythonn''' 驻留机制---相等--当下一变量相等时间时直接从 字符串池 赋值
c1='p' ; c2='n'

①查找:c.find(c1) --查找第一次出现的位置,不存在返回-1 输出:0
c.index(c1) --查找第一次出现的位置,不存在抛出ValueError

c.rfind(c1) --查找最后一次出现的位置,不存在返回-1
c.rindex(c1) --查找最后一次出现的位置,不存在抛出ValueError

②相加:c=' '.join(['ab','c'])

③转换大写(元字符串无变化): s=c.uppeer() 输出:PYTHONN

转换小写: s=c.lower()

大写转小写,小学转大写: s=c.swapcase()

第一个字符转换为大写,其余转小写: s=c.capitalize()

把每个单词的第一个字符转换为大写,每个单词的其余字符串转为小写:s=c.title()

④对齐操作: /中间对齐: c.center(总空间x,填充物质(默认空格)'*') c.center(20,'*') 输出:******pythonn*******
/左对齐 :c.ljust(总空间x,填充物质'*')
/右对齐 :c.rjust(总空间x,填充物质'*')
/右对齐(0填充):c.zfill(x)

⑤劈分(分割,形成列表): c='hello world for python'
l=c.split(sep='指定符号劈分') (默认空格) 输出:['hello', 'world', 'for', 'python']
左劈分 l=c.split(sep='|',maxsplit=(劈分单词数量x)) l=c.split(sep='|',maxsplit=(1)) 输出:
右劈分:l=c.rsplit()

⑥判断是否合法: 合法--字母加下划线_ :c.isidentifier()
空白字符串组成(回车,换行符,水平制表符): c.isspace()
全部字母组成: c.isalpha()
全部由十进制的数字组成:c.isdecimal()
全部数字组成:c.isnumeric()
全部由数字和字母组成: c.isalnum

⑦字符串替换: c.replace('被替换字符','替换的字符','最大替换次数')

⑧合并(将列表合并成一个字符串):c=['hello', 'world', 'for', 'python']
print('间隔符'.join(c)) 输出:hello world for python
#(为字符则间隔为'间隔符')

⑨比较 > >= < <= ==
c1='hello' c2='python' c1>c2

⑩切片:(产生新对象) s[起始位置:终点] s[start:stop:step]

编码转换:
将字符串转为二进制(bytes):s='天涯何处无芳草'
编码: s.encode(encoding='GBK') #在GBK格式中,一个中文占两个字节
解码: # byte代表二进制数据
byte=s.decode(encoding='GBK')


编码: s.encode(encoding='UTF-8') #在UTF-8格式中,一个中文占三个字节
解码: #byte代表二进制数据
byte=s.decode(encoding='UTF-8')









函数的创建和调用:
创建:def 函数名 ([输入参数]) : def calc(a,b):
函数体 c=a+b
[return x] return c

调用:r=calc(10,20)