知识本
判断一个字符串是不是中文组成的
在python3中,str默认是unicode编码
用 ord() 函数判断单个字符的unicode编码是否大于255即可。
一般来说,中文常用字的范围是:[\u4e00-\u9fa5]
准确点判断中文字符,可以这样比较:
>>> X,Y = ['\u4e00','\u9fa5']
>>> X<='阿'<=Y
True
int 自动去空格
int(" 10 ")
回文判断
# 12321是回文
# abcba是回文
# 1
a= input(str("请输入:"))
for i in range(0,int(len(a)/2)+1):
if a[i] == a[-1-i]:
i+=1
if i ==int(len(a)/2):
if a[i] == a[-1 - i]:
print("回文数")
else:
print("不是回文数")
# 2
if a == a[::-1]:
print("是回文")
else:
print("不是回文")
列表切片
lis=["a","b","c"]
# 切片形成 ["c"]
lis[-1:] #形成列表
lis[-1] "c" #不是列表
看源码
例如:
dict
按住 ctrl键 然后用鼠标点击 就进入源码界面了
一行代码a b 互换
a=18
b=12
a,b=b,a
print(a,b)
先算等号右边
a,b=12,18
相当于 b原来指向12 现在换成a指向12
相当于 a原来指向18 现在b换成指向18
首字母大写函数-capitalize()
第一个字符 startwith
最后一个字符 endswith
replace替换
print(s.replace("tai","大"))
次数默认不写 全部替换
#循环嵌套打印
l1=["1","打啊",["大","加","好"]]
for i in l1:
if type(i)==list:
for j in i:
print(j)
else:
print(i)
copy面试题
l1 = [1, 2, 3, 4, ['alex']]
l2 = l1[::]
l1[-1].append(666)
print(l2)
#[1, 2, 3, 4, ['alex', 666]]
enumerate
l1 = [1, 2, 3, 4]
for i in enumerate(l1):
print(i)
(0, 1)
(1, 2)
(2, 3)
(3, 4)
得到元组 一出来元组就想到拆分
显示购买的商品
先全部显示
输入序号 显示名称价格
输的不是数字 也重新输入
超过序号 报错重新输入
输入q 退出
goods=[{"name":"白","price":12},{"name":"黑","price":13},{"name":"彩","price":14}]
while 1:
for num,dic in enumerate(goods):
print("{}\t{}\t{}\t".format(num+1,dic["name"],dic["price"]))
choice_num=input("请输入商品序号:").strip()
if choice_num.isdecimal():
choice_num=int(choice_num)
if 0<choice_num<=len(goods):
print("\n您购买的商品序号为{},\n名称为{}\n价格为{}\n".format(choice_num,goods[ choice_num-1]["name"],goods[choice_num-1]["price"]))
else:
print("您输入超出范围了")
elif choice_num.upper()=="Q":
break
else:
print("您输入了非数字元素")
去除空格 strip()
将字符串 添加到字典里里面
#
s="k: 1 |k1:2| k2:3|k3:4 "
dic={}
lis=s.strip().split("|")
print(lis)
for i in lis:
x,y=i.split(":")
dic[x.strip()]=int(y)
print(dic)
十进制数字 --- isdecimal
判断是否在字典里
info={"name":"小蛋"}
判断"name"是否在字典的键里
print("name" in info)
print("name" in info.keys())
---------------------键值
print("name" in info.values())
打印问题
v1="号还有"
v2=[1,2,3,v1]
v1="大家好"
print(v2)
删除字典键中 带k的元素的键值对
dic={}
l=[]
for key in dic.keys():
if "k" in key:
l.append(key)
for key in l:
dic.pop(key)
print(dic)
循环一个字典时,如果改变这个字典的大小,就会报错
for key in list(dic.keys()):
if "k" in key:
dic.pop(key)
print(dic)
字典嵌套字典
a={}
b={"a":a}
print(b)
a["b"]=12
print(b)
#
{'a': {}}
{'a': {'b': 12}}
# # 将 data 转换成 new_data 这种形式,写出转换过程。
#
# # data = {
# # 'a_b_h':1,
# # 'a_b_i':2,
# # 'a_c_j':3,
# # 'a_d':4,
# # 'a_c_k':5,
# # 'a_e':6
# # }
# #
# # new_data = {
# # 'a':{
# # 'b':{
# # 'h':1,
# # 'i':2
# # },
# # 'c':{
# # 'j':3,
# # 'k':5
# # },
# # 'd':4,
# # 'e':6
# # }
# new_data = {}
#
# for key, value in data.items():
# keys = key.split('_')
# tmp = new_data
# last = len(keys) - 1 # 最后一个 key 的索引值
# for i, k in enumerate(keys):
# if i == last:
# tmp[k] = value
# continue
# if k not in tmp:
# sub_tmp = {}
# tmp[k] = sub_tmp
# tmp = sub_tmp
# else:
# tmp = tmp[k]
三元运算符
# 三元运算符 简单的 if else
a=1
b=2
c=a if a> b else b
print(c)
对代码有疑问欢迎交流
一个python爱好者 :
微信:at8685b

浙公网安备 33010602011771号