Python基本操作
阿成整理
# 1.函数定义
# def counter_letter_number(string):
# m = 0
# n = 0
# for s in string:
# if s in 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ':
# m += 1
# elif s in '0123456789':
# n += 1
# return m, n
#
# print(counter_letter_number("bihb"))
# # 直接返回结果
#
# def main(): # 无返回结果,因为又是一个函数
# print(counter_letter_number('a1b2c3d4'))
# print(counter_letter_number('a123456b'))
# print(counter_letter_number('123456!!'))
#
# main() # 调用
# #######################################################################################################################
# 2.函数定义升级版
# def counter_letter_number(string):
# letter_counter = 0
# digit_counter = 0
# alist = []
# blist = []
# for ch in string:
# if 'a' <= ch <= 'z' or 'A' <= ch <= 'Z':
# letter_counter += 1
# alist.append(ch)
# elif '0' <= ch <= '9':
# digit_counter += 1
# blist.append(ch)
# return letter_counter, alist, digit_counter, blist
# # 无返回
# # def main():
# # print(counter_letter_number('a1b2c3d4'))
# # print(counter_letter_number('a123456b'))
# # print(counter_letter_number('123456!!'))
# # 返回
# print(counter_letter_number('a1b2c3d4'))
# print(counter_letter_number('a123456b'))
# print(counter_letter_number('123456!!'))
# ########################################################################################################################
# 3.写函数
# import numpy as np
# def read():
# fp = open("txt2.txt", "w")
# for i in range(1, 101):
# n = np.random.randint(1, 1000)
# fp.write(str(i) + "->" + str(n) + "\n")
# fp.close()
#
# def main():
# read()
#
# if __name__ == '__main__':
# main()
# ########################################################################################################################
# 4.写函数升级版
# import random
# def read():
# fp = open("txt3.txt", "w")
# for i in range(1, 101):
# n = random.randint(1, 1000)
# fp.write(str(i) + "->" + str(n) + "\n")
# fp.close()
#
# def main():
# read()
#
# if __name__ == '__main__':
# main()
# ########################################################################################################################
# 5.读函数
# def read():
# fp = open("txt2.txt")
# lines = fp.readlines()
# fp.close()
# return lines
# def main():
# for line in read():
# print(line)
# if __name__ == '__main__':
# main()
# ########################################################################################################################
# 6.数的转换
# dec = int(input("输入数字:"))
# print("十进制数为:",dec)
# print("转换为二进制:",bin(dec))
# ########################################################################################################################
# 7.集合运算
# alist = ['a','b','c','d','e','f']
# blist = ['x','y','z','d','e','f']
# result = list(set(alist).union(set(blist)))
# print(result)
# result.sort() # 排序
# print(result)
# result.reverse()
# print(result)
# ########################################################################################################################
# 8.字符串倒序排列
# 因字符串无法直接倒序排列,所以先把字符串转化为列表,然背对列表倒序排列
# s = 'asjhjhjnl'
# clist = list(s) # 字符串转列表
# print(clist) # 已经转换成了列表
# clist.reverse() # 倒序排列
# print("".join(clist)) # 列表转字符串#####################################
# print(clist) # 打印字符串
# ########################################################################################################################
# 9.列表计算
# a = ['abc']
# b = ['def']
# a.append('g')
# print(a)
# c = a.append(b)
# print(a)
# ########################################################################################################################
# 10.列表生成式
# l2 = [x*x for x in range(1,11) if x%2==0]
# print(l2)
# ########################################################################################################################
# 11.格式输出函数
# c = (250,250)
# s2 = "坐标:%s"%(c,)
# print(s2)
# s3 = "坐标:{}".format(c)
# print(s3)
# ########################################################################################################################
# 12.字符串操作
# a1=[]
# b1=[]
# c1=[]
# def find1(string):
# for i in string:
# if 'a' <= i <= 'z':
# a1.append(i)
# elif 'A' <= i <= 'Z':
# b1.append(i)
# elif '0' <= i <= '9':
# c1.append(i)
# return a1,b1,c1
#
# print(find1("qnhjTG89")) # 返回a1,b1,c1三个单独列表
# print("小写字母",",".join(a1)) # 列表转换为字符;字符直接转化为列表 a=list(string)
# print("大写字母",",".join(b1))
# print("数字",",".join(c1))
# ########################################################################################################################
# 13.字典操作
# dict={'k': '1', 'k1': '2', 'k2': '3', 'k3': '4', 'k4': '5'}
# print(dict['k2'])
# ########################################################################################################################
# 切片
# str1 = "k:1*k1:2*k2:3*k3:4*k4:5"
# print(str1.split('*')) # 返回列表
# ########################################################################################################################
# 字典生成
# dict1 = {}
# str1='k:1'
# key,value = str1.split(':')
# dict1[key] = value
# print(dict1)
# ########################################################################################################################
# 14.字符转字典
# str1 = "k:1|k1:2|k2:3|k3:4|k4:5"
# def str2dict(str1):
# dict1 = {}
# for iterms in str1.split('|'): # |处切片进行迭代,返回列表,相当于列表迭代 ['k:1', 'k1:2', 'k2:3', 'k3:4', 'k4:5']
# key,value = iterms.split(':') # :处切片进行定义 iterms = 'k:1'
# dict1[key] = value # 新字典生成
# return dict1
# print(str2dict(str1)) # 调用函数
# ########################################################################################################################
# 15.列表生成
# li = list(range(10)) ####################################################################################
# print([x for x in range(10)]) ####################################################################################
# print(range(10))
# print(li)
# print(li[1::])
# ########################################################################################################################
# 16.大小写转化
# L = ['HH','Jjjj','JJJPOPOkkk']
# f='njnwNJNJKKkmKMk;;Mm;'
# print([s.lower() for s in L]) # 大写转小写
# print([s.upper() for s in L]) # 小写转大写
# print(f.lower())
# ########################################################################################################################
# 17.斐波拉且数列
# a = 0
# b = 1
# while b < 10:
# print(b)
# a, b = b, a+b # a,b=b,a+b这个表达式的意思就是说先计算=号的右边b的值,a+b的值,然后再分别赋值给a 和b
# # a = b
# # b = a + b #
# ########################################################################################################################
# 18.打印星星
# def printGraph(n): # n为行数
# for i in range(1, n+1): # i为行数
# for j in range(1, n-i+1): # 计算每行行首空格数
# print(' ', end='') # 打印每行行首空格数
# for k in range(1, 2*i): # 计算每行星星数
# print('*', end='') # 打印每行星星数
# print('') # 每行行尾打印空行
# printGraph(8)
# 18.打印星星升级版
# def printGraph(n):
# for i in range(1,n+1):
# print( ' '*(n-i) + '*'*(2*i-1) )
#
# printGraph(8)
# ########################################################################################################################
# 19.查看当前目录下的文件
# import os
# for d in os.listdir('.'):
# print(d)
# ########################################################################################################################
# 20.查看当前目录下的文件升级版
# import os
# [print(d) for d in os.listdir('.')]
# ########################################################################################################################
# 21.生成随机数,写入到文件中
# import random
# fp=open("abc.txt","w")
# for i in range(1,101):
# n=random.randint(1,1000)
# fp.write( str(i) +"->" +str(n) + "\n")
# fp.close()
# ########################################################################################################################
# 22.查看某个目录下的文件
# import os
# def print_dir(input1):
# #filepath=input("请输入路径:")
# filepath = input1
# if filepath=="":
# print("请输入正确路径")
# else:
# for i in os.listdir(filepath):
# print(os.path.join(filepath,i)) # print("".join(clist)) # 列表转字符串
#
# print(print_dir(input("请输入路径:")))
# ########################################################################################################################
# 23.打印九九乘法表
# for i in range(1,10): # 行
# for j in range(1,i+1): # 列
# print('%d*%d=%d'%(j,i,j*i),end='\t')
# print('')
# ########################################################################################################################
# 24.打印倒三角
# def printGraph(n):
# for i in range(1,n+1):
# print( ' '*(i-1) + '*'*(2*(n-i)+1) )
# printGraph(8)
# ########################################################################################################################
# 25.os和sys,os与操作系统有关,sys与程序和解释器有关
# 1,2,3,4,5生成互不相同的无重复三位数
# i=0
# for x in range(1,6):
# for y in range(1,6):
# for z in range(1,6):
# if (x!=y) and (y!=z) and (z!=x):
# i+=1 # i 表示生成三位数的个数
# if i%6:
# print("%d%d%d"%(x,y,z),end="|")
# else:
# print("%d%d%d"%(x,y,z))
# ########################################################################################################################
#############
# 类->无参数 #
#############
# class Student:
# def __init__(self): # 无参数占位
# self.name='zhangsan'
# self.age=12
# self.dda='sss'
#
# def shopping(self,item):
# print('buy %s'%item)
#
# s=Student() # 实例化,无参数
# print(s.name)
# print(s.dda)
# print(s.age)
#############
# 类->有参数 #
#############
# class Student:
# def __init__(self,sss): # 参数占位
# self.name='zhangsan'
# self.age=12
# self.dda=sss
#
# def shopping(self,item):
# print('buy %s'%item)
#
# s=Student('cvdecv') # 实例化,有参数
# print(s.name)
# print(s.dda)
# print(s.age)
# 26.pickle序列化和反序列化
# import pickle
#
# class Student:
# def __init__(self):
# self.name='zhangsan'
# self.age=12
# ##############
# def shopping(self,item): # 不知道有啥用 #
# print('buy %s'%item) # 不知道有啥用 #
# ##############
# s=Student()
# print(s.name)
# info=pickle.dumps(s)
# print(info)
#
# s2=pickle.loads(info)
# print(s2.name)
# ########################################################################################################################
# 27.pickle序列化和反序列化升级版
# import pickle
#
# class Student:
#
# def __init__(self):
# self.name = 'zhangsan' # 属性
# self.age = 12 # 属性
#
# def shopping(self, item): # 方法
# print('buy%s'%item) # 方法
#
# s = Student()
#
# with open('stu2.data','wb') as fr:
# pickle.dump(s,fr)
#
# with open('stu.data', 'rb') as fr:
# s1=pickle.load(fr)
#
# print(s.age)
# print(s.name)
# print(s.shopping('cai'))
# ########################################################################################################################
# 28.with打开文件自动带了异常处理
# import os
#
# baseDir=r'C:\Users\Administrator\PycharmProjects\python进阶'
# filename='abc.txt'
#
# file_path=os.path.join(baseDir,filename)
#
# with open(file_path,'r') as f:
# for line in f.readlines():
# print(line)
# #######################################################################################################################
# 29.列出当前目录下所有文件和文件夹名
# import os
# for d in os.listdir('.'):
# print(d)
#
# #######################################################################################################################
# 30.获取字符串中某个字符的个数
# from collections import Counter ####### 统计每个字符出现个数 ########
# s='vhjvvc cjk kuebvuce'
# c1=Counter(s)
# print(type(c1))
# print(dict(c1))
# print(Counter([2,4,2,5,6,2]))
# ########################################################################################################################
# 31.用python标准库实现输入某年某月某日,判断这一天是这一年的第几天
# import datetime
# def dayofyear():
# year =input("请输入年份:")
# month=input("请输入月份:")
# day =input("请输入天: ")
# date1 = datetime.date(year=int(year), month=int(month), day=int(day))
# date2 = datetime.date(year=int(year), month=1, day=1)
# return (date1-date2).days
#
# print(dayofyear())
# ########################################################################################################################
# 32.计算一个数的阶乘
# num=int(input("请输入一个正整数:"))
# result=1
# for i in range(2,num+1): # 从2开始循环,最后一个数不参与循环 #
# result *= i # result=result*i
# print("%d的阶乘为:"%num,result)
# #######################################################################################################################
# 33.使用json数据处理方式查找字符串{"person":[{"name":"yu","age":"23"},{"name":"zhang","age":"34"}]}第一个姓名
# 无法运行
# import json
# j=json.loads('{"person":[{"name":"yu","age":"23"},{"name":"zhang","age":"34"}]}')
# print(j.values()[0][0]['name'])
# #######################################################################################################################
# 34.定义函数
# def hello():
# print("hello world!")
# hello()
# #######################################################################################################################
# 35.lamda函数,匿名函数;def用来创建有名称的函数。
# #######################################################################################################################
# 36.单下划线和双下划线的区别
# 类的定义是否继承object,有什么区别,
# 不继承object对象,只拥有了__doc__ , __module__ 和 自己定义的name变量
# 承了object对象,拥有了好多可操作对象,这些都是类中的高级特性
# class Method(object):
#
# def __init__(self,name,age,sex):
# # self.__name=name # 私有
# self.name = name # 公有
# self.age = age # 公有
# self.sex = sex # 公有
#
# def sayhello(self):
# print("Method say hello!")
#
# def __sayhi(self):
# print("Method say hi!")
#
# m=Method('axsa','acs','cacsa')
#
# m.sayhello()
# # m.__sayhi()
# # print(m.__name)
# print(m.name)
# #######################################################################################################################
# 37.字符串的倒序排列
# def string_reverse(input_str):
# return input_str[::-1]
#
# print(string_reverse("abcdefg"))
# #######################################################################################################################
# 38.字符串的倒序排列
# string="abcdefg"
# clist=list(string)
# clist.reverse()
# print("".join(clist)) # 列表转字符串
# #######################################################################################################################
# 39.随便编写
# class A(object):
# def __init__(self,a,b):
# self.a1=a
# self.a2=b
# print('init')
#
# a1=A(1,'s')
# #######################################################################################################################
# 40.计算x的n次方
# def power(x,n): # x=2 n=4 说明x 乘3次 (n-1)次
# s=1
# while n>0:
# n=n-1
# s=s*x
# return s
#
# print(power(2,4))
# #######################################################################################################################
# 形参,实参问题
# def funcF(a, **b):
# print(a)
# for x in b:
# print(x + ":" + str(b[x]))
#
# funcF(100, c='你好', b=200)
# 定义函数不确定有多少参数时,可用*来表示多个参数
# 41.计算a*a+b*b+c*c+
# def calc(*numbers):
# sum=0
# for n in numbers:
# sum=sum+n*n
# return sum
#
# print(calc(2,4,5,6))
# #######################################################################################################################
# 42.打印1-10的数字及每个数的平方
# from math import factorial # 阶乘 factorial
# def main():
# print('%-10s%-10s%-10s%-10s'%('数字','平方','几何级数','阶乘'))
# for num in range(1,11):
# print('%-12d%-12d%-12d%-12d'%(num,num**2,2**num,factorial(num)))
#
# if __name__ == '__main__':
# main()
# #######################################################################################################################
# 43.生成验证码
# from random import randint
# # def generate_code(length=4):
# # code_string='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
# # code=''
# # for _ in range(length):
# # code += code_string[randint(0,len(code_string)-1)]
# # return code
# #
# # def main():
# # for _ in range(10):
# # print(generate_code())
# #
# # if __name__ =='__main__':
# # main()
# #######################################################################################################################
# 44.统计字符串中中英文出现的次数
# def count_letter(string):
# m=0
# n=0
# for s in string:
# if s in 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM':
# m+=1
# elif s in '1234567890':
# n+=1
# return m,n
#
# def main():
# print(count_letter('bjjnjn3j-=-jk44j43'))
# print(count_letter('by87387=-t48'))
# print(count_letter('hjbNN 99 PPU*Y77'))
#
# if __name__ =='__main__':
# main()