1.Python标准库math中用来计算平方根的函数是__________。 sqrt 2.在python中__________表示空类型。 None表示空类型 有序 4.查看变量类型的Python内置函数是________________。 type() id() [1, 2, 3, 1, 2, 3, 1, 2, 3] [‘1’, ‘2’, ‘3’] (False) (18) (False) [6, 7, 9, 11] [5 for i in range(10)] c = dict(zip(a, b)) -1 ‘hello world!’ 回车换行 [1, 4, 7] [0, 2, 4] False 1:2:3 2 [111, 33, 2] ‘3’ ‘11’ ‘11’ (3,) 3 {1: 2, 2: 3} 字典对象的_____________方法返回字典中的“键-值对”列表。>items() 使用列表推导式得到100以内所有能被13整除的数的代码可以写作____________。 [i for i in range(100) if i%13==0] 9 6 [3, 5, 7, 1, 2] [(1, 3), (2, 4)]) [1, 2, 3, 2] [1, 2] [2, 4] ‘c:test.htm’ ‘65,A’ ‘The first:97, the second is 65’ ‘ab:efg’ True -1 ‘a,b,ccc,ddd’ ‘123456’ ‘yybcyyb’ ‘Helloc corld’ [(‘a’, 3), (‘b’, 1), (‘d’, 4)] [] [3, 9, 78] <class ‘float’> a,b,c 9次 13 1 16 1 1275 [0, 1, 2, 5, 4, 5, 6, 7, 8, 9] 9.阅读下面的代码,解释其功能: 输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串 10.写出下面代码的运行结果 demo()里的x是demo()函数的局部变量,demo()函数结束这个x被回收,与要执行的x不是同一个 11.写出下面代码的运行结果 [5, 6, 1, 2, 3, 4] 12.写出下面代码的运行结果 appy New Year!H 13.写出下面代码的运行结果 {1: ‘aa’, 2: ‘bb’, 3: ‘ff’, 6: ‘dd’, 87: ‘ee’} 14.写出下面代码的运行结果 [3, 2] [1, 2] 15.写出下面代码的运行结果 恭喜,你已获得我公司的面试机会! 16.写出下面代码的运行结果 Find a odd numer 3 17.写出下面代码的运行结果 you love I 1000 [‘a’] 1 2 (2.5, 3, 4) 1 2 n1 is 2 (10, 60) 分别填写randint、50、0 前5行由第一个for循环控制 通过上下文的提示可知 老杨辉三角了 通过[;;2]的方法把偶数下标对应的元素提取出来,先排好序在直接修改x列表的值 sqrt()函数是求平方根 先选出最小的,加入到列表r中,再把这个最小的剔除,重复上述步骤,返回r列表 还是sort()函数好,数据结构的什么冒泡排序,简单选择排序,希尔排序,快速排序学得脑阔痛一、填空题
计算平方根可以用pow(x,0.5)或者x**0.5,但这里问的是那个函数专门用来求平方根
这里的有序不是指里面的元素递增或递减,而是指下标是有序的
type()函数查看变量类型
id()函数可以查看变量的内存地址
map(function, iterable, …)
function是指函数,这里是str,iterable是指可迭代对象,这里是[1,2,3],把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。这里就是把str()作用在列表上,返回一个新列表,其结果就是每个元素变成了str类型
我们可以试一试
可以看到3和9已经放到了不相邻的内存地址了
下标从零开始,左闭右开
题目中说用列表推导式,不然可以直接写成[5]*10
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
但这里’hello world!’是一个整体,不会被分开
sorted(iterable, cmp=None, key=None, reverse=False)
iterable – 可迭代对象。
cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
这里key可看成是比较的一种方法,key是指求字符串x的相反数,用这个key值进行比较,111的key值是-3,2的key值是-1,33的key值是-2,
排序应该是-3,-2,-1,对应的就是[111,33,2]
为什么是‘3’而不是’11‘呢?
要注意的是这里的不是数字,而是字符串,字符串的比较先从第一位开始,如果第一位相等,在比较第二位,题中第一位先进行比较,应该是’1‘,’2‘,’3’,当然是‘3’开头的大。
和上一题相同只是这个是比较谁更小
给出了key ,那就是比较key的值,这题的key给出的方法是求长度(元素个数),分别求一下key值,为2,1,1,所以最大的应该是‘11’
tuple类型
int 类型
len(x)为3
x[len(x):]就是x[3:],表示在第3个无素后添加1,2
zip()函数上面的题目介绍过了
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
index指下标
这里的max应该是7,也就是说如过值等于7,就把下标加入到列表中
一个简单的对字符串的操作,值得注意的是,下标从右往左数的时候是从-1开始的,而不是从0开始
65对应的字符是A
1和0可以看成是下标
在cd处将字符分为两部分,在用:把这两部分连接
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。 判断给的数据是否与给的类型相一致
Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
默认以空格为分隔符,包含 n
还可以指定num的值来规定分隔次数,默认为-1,分隔所有
把‘a’替换为’yy’
str.translate(table[, deletechars])
Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 del 参数中。
table – 翻译表,翻译表是通过maketrans方法转换而来。
deletechars – 字符串中要过滤的字符列表。
在本题,就是把’a’替换为’x’,‘b’替换为’y’,‘c’替换为’z’,‘w’替换为’c’
取出值之后还要排序
二、阅读程序
def Join(List, sep=None): return (sep or ',').join(List) print(Join(['a', 'b', 'c'])) print(Join(['a', 'b', 'c'],':'))
a: b :c
第二行没有空格,不留空格,两个冒号会变成🅱️
k=1000 while k>1: print(k) k=k//2
这里看得出是执行了10次的,但为什么是9次呢,答案是在第9次的3.90625后k/2的结果是1.93125,题目规定的k是整数,取整后就是1,此时第10次不会再进行了、
def Sum(a, b=3, c=5): return sum([a, b, c]) print(Sum(a=8, c=2)) print(Sum(8)) print(Sum(8,2))
16
15
b,c是有默认值的,当不给定bc值的时候,就取默认值
i=1 while i+1: if i>4: print("%d"%i) i+=1 break print("%d"%i) i+=1 i+=1
3
5
需要注意的只有 while i+1:这个地方的 i 的值不会改变
def Sum(*p): return sum(p) print(Sum(3, 5, 8)) print(Sum(8)) print(Sum(8, 2, 10))
8
20
*p指传入一个序列
**p就是传入一个字典
s = 0 for i in range(1,101): s += i else: print(1)
s = 0 for i in range(1,101): s += i if i == 50: print(s) break else: print(1)
当for循环正常结束时,才会执行else语句,在本题,当i=50时,通过break结束循环,不会执行else语句
x = list(range(10)) for index, value in enumerate(x): if value == 3: x[index] = 5 else: print(x)
这个循环是指找到值为3的元素,并把值改为5import string x = string.ascii_letters +string.digits import random print(''.join(random.sample(x,10)))
def demo(): x = 5 x = 3 demo() print(x)
def demo(lst, k): if k < len(lst): return lst[k:] + lst[:k] lst=[1,2,3,4,5,6] demo(lst,4)
返回一个列表,将传进来的列表在k处前后交换def foo(s): if s=="": return s else: return s[1:]+s[0] print (foo('Happy New Year!'))
把字符串的第一个元素放到最后l1=[1,2,3,6,87,3] l2=['aa','bb','cc','dd','ee','ff'] d={} for index in range(len(l1)): d[l1[index]]=l2[index] print(d)
d是一个字典,for循环就是给字典赋值的过程,以L1为key,以L2为valuelist1=[1,2] list2=list1[::] list1[0]=3 print(list1,list2)
list1[::]就是list1整体,但如果是list1[::-1]就是把list1逆序age, subject,college=(24,"计算机","非重点") if (age > 25 and subject=="电子信息工程") or (college=="重点" and subject=="电子信息工程" ) or (age<=28 and subject=="计算机"): print("恭喜,你已获得我公司的面试机会!") else: print("抱歉,你未达到面试要求")
满足第三个条件for num in range(2,10): if num % 2 == 0: continue print("Find a odd numer", num)
Find a odd numer 5
Find a odd numer 7
Find a odd numer 9for i in range(1, 7): print(' ' * 2 * (6 - i), end='') for j in range(i, 0, -1): print(j, end=" ") print()
他这个地方打不出这么多空格,只能放截图了
第一个print控制空格
第二个print控制数字
第三个输出换行,print的end参数默认是换行
def rev1(s): s=s.split() s1=' '.join(reversed(s)) return s1
先按空格分成[I,love,you]三部分,再把这三部分逆序,然后用空格把三部分连接起来
def addInterest(balance,rate): newBalance=balance*(1+rate) balance=newBalance def main(): amount=1000 rate=0.05 addInterest(amount,rate) print (amount) main()
amount传进去就是形参了,形参的改变不会引起实参的改变,看一眼就知道是1000
def demo(newitem,old_list=[]): old_list.append(newitem) return old_list def main(): print(demo('a')) print(demo('b')) main(
[‘a’, ‘b’]
‘a’传入后old_list就有元素a了,把’b’传进去就有[‘a’,‘b’]了
def func5(a, b, *c): print(a, b) print("length of c is %d, c is " % len(c), c) func5(1, 2, 3, 4, 5, 6)
length of c is 4, c is (3, 4, 5, 6)
def demo(*para): avg = sum(para)/len(para) g = [i for i in para if i>avg] return (avg,)+tuple(g) print(demo(1,2,3,4))
demo()函数的意思是先求出传入元素的平均值,返回由平均值和大于平均值的元素组成的元组
def f(w=1,h=2): print(w,h) f() f(w=3) f(h=7) f(a=3)
3 2
1 7
错误
最后这个报错信息明显不是打印一个错误,但答案就是这么写的,我们就不多纠结了
def sort(number1,number2): if number1<number2: return number1,number2 else: return number2,number1 n1,n2=sort(3,2) print('n1 is ',n1) print('n2 is ',n2)
n2 is 3
def demo(m, n): if m>n: m, n = n, m p = m*n while m!=0: r = n%m n = m m = r return (n,p//n) print( demo(20, 30)
注意输出格式,返回的是一个元组三、 程序填空题
import random x = [random.____________(1,20) for i in range(_______)] r = dict() for i in x: r[i] = r.get(i, _____)+1 for k, v in r.items(): print(k, v)
randint用于产生随机整数,
字典的get()方法,是通过键名找对对应的值,这里通过把x的元素当作键名,把找到的次数当作值,每找到一次,value就加一,一次得到每个整数对应的频率
import random _____________ x = string.ascii_letters + string.digits + string.punctuation y = [__________for i in range(1000)] d = dict() for ch in y: d[ch] = d.get(ch, 0) + 1 items = list(d.items()) items.sort(_________, reverse = True) for i in range(20): word,count = items[i] print(________ % (word, count))
#随机选择序列x的一个元素
#这里的x指items的每个元素,每个x又是一个元组,x[1]就是每个元组的第二个元素,元组的第一个元素是字符,第二个是字符对应的次数,从而实现通过次数的多少来实现排序
n = input('输入行数:') ____________ for i in range(1, n + 1): print(_______, end = '') for j in range(1, 2 * i): print('&',___________ ) print()
x = eval(input("请输入小于1000的整数:")) k = 2 _________________ while x > 1: if_________: print(k, end=" ") x = x // k if x > 1: print("*", end=" ") else: __________
import math x = eval(input("输入一个数")) while x < 6 or x % 2 == 1: # 大于6的偶数 x = eval(input("输入一个数")) for n1 in___________: m1 = int(math.sqrt(n1) + 1) for i in range(2, m1): # 2-sqrt(n1) if_________: break else: ___________ m2 = math.ceil(math.sqrt(n2) + 1) for j in range(2, m2): if n2 % j == 0 and j < n2: _____________ else: print(x,'=',n1,'+',n2)
for i in range(1, 10): ___________________ s1 = str(i) + '×' + str(j) + '=' + str(i * j) print(________________) print()
for i ————————————————: print((' * ' * (2 * i-1)).center(30)) for i in range(6, 0, -1): print(——————————————————)
s = '雾锁山头山锁雾' low = 0 high =____________ while low < high: if__________: # 倒序和顺序不一样 print(s, "不是回文") __________ low += 1 _______________ else: print(s, "是回文串")
s='''I am a teacher! You are students!''' print('='*30) print('统计信息'.center(28)) print(_____________) item_width=25 line=s.count('n')+1 word=s.split() char=list(s) #包含空格、标点符号 w_num=0 for w in word: w_num+=____________ print('%-*s %5d'%(item_width-3,'行数',line)) print('%-*s %5d'%(_______________,'单词数',len(word))) print('%-*s %5d'%(item_width-10,'字符数(包含空格)',_____________)) print('%-*s %5d'%(item_width-11,'字符数(不包含空格)',w_num)) print('-'*30)
item_width用来制定输出大小
line用于求行数
char是该字符串转化的列表
word是字符串的单词
w_num通过求每个单词的长度叠加求得字符数(不含空格)
def demo(t): print([1]) ______________ line = [1, 1] for i in range(2, t): _______________ for j in range(0, len(line) - 1): r.append(______________) line = [1] + r + [1] print(line) demo(__________)
四、 编程题
fp = open(r'D:test.txt', 'a+') print('hello world', file=fp) fp.close()
import random x = [random.randint(0,100) for i in range(20)] print(x) y = x[::2] y.sort(reverse=True) x[::2] = y print(x)
import math def IsPrime(v): n = int(math.sqrt(v)+1) for i in range(2,n): if v%i==0: return 'No' else: return 'Yes' print(IsPrime(77))
最后的测试可以是其它数字
def sorted(v): t = v[::] r = [] while t: tt = min(t) r.append(tt) t.remove(tt) return r print(sorted([1,3,2,4]))
import random x = [random.randint(0,100) for i in range(20)] print(x) y = x[0:10] y.sort() x[0:10] = y y = x[10:20] y.sort(reverse=True) x[10:20] = y
x = input('Please input an integer of 4 digits meaning the year:') x = eval(x) if x%400==0 or (x%4==0 and not x%100==0): print('Yes') else: print('No')
x = input('Please input x:') x = eval(x) if x<0 or x>=20: print(0) elif 0<=x<5: print(x) elif 5<=x<10: print(3*x-5) elif 10<=x<20 : print(0.5*x-2)
scores = {"Zhang San": 45, "Li Si": 78, "Wang Wu": 40, "Zhou Liu": 96, "Zhao Qi": 65, "Sun Ba": 90, "Zheng Jiu": 78, "Wu Shi": 99, "Dong Shiyi": 60} highest = max(scores.values()) lowest = min(scores.values()) average = sum(scores.values())/len(scores) highestPerson = [name for name, score in scores.items() if score == highest] #分行 print(highest,lowest,average,highestPerson)
d=[["张三",76],["李四",45],["王五",83],["郑六",66],['a',54],['c',68],['b',89]] s1=input("输入数据Y or N:").strip()#去掉前后空格 while s1 == 'Y': s2=input("请输入学生及成绩(空格隔开)") name,grade=s2.split() d.append([name,grade]) #d[name]=int(grade) s1=input("继续输入Y or N:").strip() else: print(d) print("不及格的名单:") for name,grade in d: if float(grade) < 60: print("姓名:",name,"t","成绩:",grade)
lst=[] n=eval(input('请输入数字个数:')) for i in range(n): number=eval(input('请输入数字:')) lst.append(number) for value in lst: print(value,end=' ')
n=int(input("请输入N的值:")) s=0 fh=1 for i in range(1,n+1): s += fh * 1 / i # 求和语句 fh = -fh # 正负交替 print("1-1/2+1/3-1/4...+(-1)^(n-1)/n=",s,i)
import random lst=[random.randint(1,100) for i in range(50)] print('50个随机两位整数:',lst) k=len(lst)-1 for i in range(k,-1,-1):#从后往前删,减少列表元素移动 if lst[i] % 2==1: lst.pop(i) print("偶数为",lst)
plaincode = input('请输入明文:') for p in plaincode: if 'a' <= p <= 'z': c = chr(ord('a') + (ord(p) - ord('a') + 3) % 26) # ord是字符编码的值,都减掉ord('A')才可以得到字符的顺序0-25 print(c, end='') elif 'A' <= p <= 'Z': c = chr(ord('A') + (ord(p) - ord('A') + 3) % 26) print(c, end='') else: print(p, end='')
def isPalindrome(s): if s == s[::-1]: # 切片操作,倒序和顺序一样 return True else: return False s=input('input a string:') if isPalindrome(s): print('%s is a palindrome!' % s) else: print('%s is not a palindrome!'%s)
s=input("输入一行字符串或句子:") char_counts={} for char in s: char_counts[char]= char_counts.get(char,0)+1 print(char_counts)
import string,random str1=string.ascii_letters +string.digits str1=str1.lower() str2=[random.choice (str1) for i in range(100)] print(str2) str_count={} for char in str2: str_count[char]=str_count.get(char,0)+1 print(str_count) items=list(str_count.items()) items.sort(key=lambda x:x[1],reverse=True) #以数量降序 for i in range(20): word, count = items[i] print("%-15s %5d" % (word, count)) # -表示左对齐,s表字符,d表示整数
fw = open(r'score2.txt', 'w') s = ['张三,', ' 2017010101,', ' 66,', ' 77,', ' 88', 'n'] fw.writelines(s) fw.write('李四, 2017010102, 60, 70, 80n') fw.write('王五, 2017010103, 64, 73, 82n') fw.write('赵六, 2017010104, 56, 67, 48n') fw.write('钱七, 2017010105, 46, 57, 68n') fw.close() f1 = open(r'score2.txt', 'r') f2 = open(r'bad2.txt', 'w') f3 = open(r'pass2.txt', 'w') lines = f1.readlines() for line in lines: data = list(line.split(',')) print(data) # ['张三', ' 2017010101', ' 66', ' 77', ' 88n'] k = 0 for i in data[2:]: if int(i) < 60: k += 1 if k >= 2: # 两门以上(含两门)课程不及格 f2.write(line) else: f3.write(line) f1.close() f2.close() f3.close()
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算