#简单小代码
##点名随即抽取
import random
keys = [2019660101,2019660102,2019660103,2019660104,2019660105,2019660106,2019660107,2019660108,2019660109,2019660110,2019660111,2019660112,2019660113,2019660114,2019660115,2019660116,2019660117,2019660119,2019660120,2019660121,2019660122,2019660123,2019660124,2019660125,2019660126,2019660127,2019660128]
values = ['周嘉铖','钱珑超','徐展','尤桉哲','钱涛','黄舒怡','胡志辉','吴昭耀','陈萌萌','郑巧悦','陈艳','梁明皓','蒋俊超','徐颖','倪宏涛','潘梦倩','王中阳','毛贞强','张嫒','朱速航','陈涛','陆元超','叶振雄','奚申杰','叶梦婷','徐丽丽','潘艳']
mydict= dict(zip(keys,values))
a = int(input('抽取',))
i = 1
list1 = []
list2 = []
while i < a:
a = random.choice(list(mydict))
list1.append(a)
list2.append(mydict.get(a))
i+=1
print(list1,list2)
首先创建了一个字典,key\value为名字和学号
这串代码的主要函数为random随即函数
random函数要运用为列表,所以要用list()把字典转为列表
##求列表中的偶数个数
def even(x):
z = 0
for i in x:
if i % 2 == 0: #求偶数
z += 1
print('偶数位置:', [i])
return z
a = even([1, 2, 3, 4, 5, 6]) # 输入序列
print('序列中偶数的个数为:', a)
使用得分调用函数,创建循环,当除以2为0则偶数个数加一
##求函数sin从0到π的与x轴的面积
这题主要先了解求面积的方法
把0到2π分为x份,分的越多越接近它的面积
在把面积之和求出来就是面积
import math
import numpy
i = 0
j = 0
n = 0
m = 0
list1 = []
a = int(input("请输入矩形个数:")) #矩形个数越多结果越准确
if a < 5: #5个起步太少了不精确
print("请重新输入")
else:
b = math.pi//a
for i in range(0,2*math.pi,b):
list1.append(abs(math.sin(i)))
while j <= len(list1):
n+=int(list1(j))
j+=1
m = n*b
print(m)
分成a份,通过sin函数求高,最好面积相加,这个是简单的数学问题。通过代码把意思表示出来。
##冒泡排序
a=[1,2,6,0,3,2,0.5,-1,2.4]
a.sort(reverse = False)
print(a)
python有直接的简便代码,不用很复杂的运用循环嵌套,直接使用sort函数,对数据进行排序会更加方便,其中reverse0函数定义排序为从小到大还是从大到小
##查找所有的元素(不重复出现)。
from collections import Counter #引入Counter
lst = eval(input('请输入列表lst:'))
a = dict(Counter(lst))
b = []
print ([key for key,value in a.items()if value > 1 ]) #展示重复元素
b=[key for key in(lst+a) if key not in list1]
print(b)
items()方法返回可遍历的(键, 值) 元组数组。
print输出函数对字典中的值进行比较,输出重复出现的值
b输出不在重复出现的列表里面的值
从而达到输出效果
##编写一个demo程序,在每一行的最后加上#和第几行,输出一个新的文件
filename = 'demo.py'
with open(filename,'r',encoding='utf-8') as fp:
lines = fp.readlines() #读取所有行
maxLength = max(map(len,lines)) #获取最长的行的长度
print(maxLength)
#遍历所有行
for index,line in enumerate(lines):
newLine = line.rstrip() #删除每行右侧的空白字符
newLine = newLine + ' ' * (maxLength - len(newLine)) #在每行右侧填充空格
newLine = newLine + '#' + str(index + 1) + '\n' #在每行右侧增加行号
lines[index] = newLine #把新组装的行放到列表中
#把新组装的列中写入到demo_new.py文件中
with open('demo_new.py','w',encoding='UTF-8') as fp:
fp.writelines(lines)
思路:创建一个新的文件demo,然后打开文件(一般文件打开记得要关闭)
因为要左对齐,所以我们要找到最长的一行,并记录字符数
然后把其他的短行加上空格与最长的字符一致长,最后加上#和第几行