知识本

判断一个字符串是不是中文组成的

在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)
posted @ 2020-02-22 11:27  小丁变优秀  阅读(109)  评论(0)    收藏  举报