defcompute_area_of_circle(r): returnround(math.pi * r * r, 2)
print("area of 2 is:", compute_area_of_circle(2)) print("area of 3.14 is:", compute_area_of_circle(3.14)) print("area of 6.78 is:", compute_area_of_circle(6.18))
区间内所有的素数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
defis_prime(number): if number in (1, 2): returnTrue for idx inrange(2, number): if number % idx == 0: returnFalse returnTrue
defprint_primes(begin, end): for number inrange(begin, end + 1): if is_prime(number): print(f"{number} is a prime") begin = 11 end = 25 print_primes(begin, end)
求前N个数字的平方和
1 2 3 4 5 6 7 8 9
defsum_of_square(n): result = 0 for number inrange(1, n + 1): result += number * number return result
print("sum of squre 3:", sum_of_square(3)) print("sum of squre 5:", sum_of_square(5)) print("sum of squre 10:", sum_of_square(10))
Python计算列表数字的和
1 2 3 4 5 6 7 8 9 10
defsum_of_list(param_list): total = 0 for item in param_list: total += item return total
list1 = [1, 2, 3, 4] list2 = [17, 5, 3, 5] print(f"sum of {list1},", sum_of_list(list1)) print(f"sum of {list2},", sum_of_list(list2))
数字范围内的所有偶数
1 2 3 4 5 6 7 8 9 10 11 12 13
defget_even_numbers(begin, end): result = [] for item inrange (begin, end): if item % 2 == 0: result.append(item) return result
begin = 4 end = 15 print(f"begin={begin}, end={end}, even numbers: ", get_even_numbers(begin, end))
# data = [item for item in range(begin, end) if item % 2 == 0] # print(f"begin={begin}, end={end}, even numbers: ", data)
从列表中移除多个元素
1 2 3 4 5 6 7 8 9 10 11
defremove_elements_from_list(lista, listb): for item in listb: lista.remove(item) return lista
defread_file(): result = [] withopen("./student_grade_input.txt") as fin: for line in fin: line = line[:-1] result.append(line.split(",")) return result
defsort_grades(datas): returnsorted(datas, key=lambda x: int(x[2]), reverse=True) defwrite_file(datas): withopen("./student_grade_input.txt", "w") as fout: for data in datas: fout.write(",".join(data) + "\n") # 读取文件 datas = read_file() print("read_file datas:", datas) # 排序数据 datas = sort_grades(datas) print("sort_grades datas:", datas) # 写出文件 write_file(datas)
读取成绩文件计算最高分最低分平均分
1 2 3 4 5 6 7 8 9 10 11 12 13 14
defcompute_score(): scores = [] withopen("./student_garde_input.txt") as fin: for line in fin: line = line[:-1] fields = line.sqlit(",") scores.append(int(fields[-1])) max_score = max(scores) min_score = min(scores) avg_score = round(sum(scores) / len(scores), 2) return max_score,min_score,avg_score
withopen("./Beginner Guide to Python.txt") as fin: for line in fin: line = line[:-1] words = line.split() for word in words: if word notin word_count: word_count[word] = 0 word_count[word] += 1
withopen("course_student_grade_input.txt",encoding='utf-8') as fin: for line in fin: line = line[:-1] course, sno, sname, grade = line.split(",") if course notin course_grades: course_grades[course] = [] course_grades[course].append(int(grade)) print(course_grades)
for course, grades in course_grades.items(): print( course, max(grades), min(grades), sum(grades) / len(grades) )
实现不同文件的关联
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
course_teacher_map = {} withopen("./datas/course_teacher.txt") as fin: for line in fin: line = line[:-1] course, teacher = line.split(",") course_teacher_map[course] = teacher
print(course_teacher_map)
withopen("./course_student_grade_input.txt") as fin: for line in fin: line = line[:-1] course, sno, sname, sgrade = line.split(",") teacher = course_teacher_map.get(course) print(course, teacher, sno, sname, sgrade)
实现批量Txt文件的合并
小知识: Python读取文件的两个方法 方法1:按行读取 for line in fin 方法2: 一次读取所有内容到一个字符串 content = fin.read()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import os
data_dir = "./datas/many_texts"
contents = [] for file in os.listdir(data_dir): file_path = f"{data_dir}/{file}" if os.path.isfile(file_path) and file.endswith(".txt"): withopen(file_path) as fin: contents.append(fin.read())
final_contentl= "\n".join(contents)
withopen("./datas/many_texts.txt""w") as fout: fout.write(final_content)
统计每个兴趣的学生人数
1 2 3 4 5 6 7 8 9 10 11 12 13
like_count = {}
withopen("./datas/student_like.txt") as fin: for line in fin: line = line[:-1] sname, likes = line.split("") like_list = likes.split(",") for like in like_list: if like notin like_count: like_count[like] = 0 like_count[like] += 1
print(like_count)
获取当前的日期和时间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import datetime
curr_datetime = datetime.datetime.now()
print(curr_datetime, type(curr_datetime))
# date time to string str_time = curr_datetime.strftime("%Y-%m-d %H:%M:%S") print("str_time", str_time)
for line in content.split("\n"): pattern = r"(\d)斤(.*)花了(\d+(\.\d+)?)元" match = re.search(pattern, line) ifmatch: print(f"{match.group(1)}\t{match.group(2)}\t{match.group(3)}")
if __name__ == '__main__': # 方法一 : 0 作为加入数字的占位符 a = [1,4,6,9,13,16,19,28,40,100,0] print ('原始列表:') for i inrange(len(a)): print (a[i]) number = int(input("\n插入一个数字:\n")) end = a[9] if number > end: a[10] = number else: for i inrange(10): if a[i] > number: temp1 = a[i] a[i] = number for j inrange(i + 1,11): temp2 = a[j] a[j] = temp1 temp1 = temp2 break print ('排序后列表:') for i inrange(11): print (a[i])
将一个数组逆序输出
1 2 3 4 5 6 7
a = [1, 2, 3,4,5] for i inrange(0,(len(a)-1)//2): temp= a[i] a[i] = a[len(a)-i-1] a[len(a)-i-1] = temp print(a)
模仿静态变量的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14
classTest : var = 0 deftest(self): self.var += 1 print(self.var) a = Test() print(Test.var) print(a.var) a.test() a.test() a.test() print(a.var) print(Test.var)
学习使用atuo定义变量的用法
1 2 3 4 5 6 7 8 9
num = 2 deftest(): num = 1 print("test num: %d" % num) num += 1 for i inrange(3): print("num: %d" % num) num += 1 test()
模仿静态变量(static)另一案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
classTest: num = 1 deftest(self): self.num += 1 print(self.num)
num = 1 a = Test() print(Test.num) # 1 num += 1 print(num) # 2 print(a.num) # 1 a.test() print(a.num) # 2 print(num) # 2 print(Test.num) # 1
两个矩阵相加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
x = [[12,7,3], [4,5,6], [7,8,9]]
y = [[5,8,1], [6,7,3], [4,5,9]]
z = [[0,0,0], [0,0,0], [0,0,0]]
for i inrange(3): for j inrange(3): z[i][j] = x[i][j] + y[i][j] for i in z: print(i)
统计1到100之和
1 2 3 4
sum = 0 for i inrange(1,101): sum += i print(sum)
两个变量值互换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
a = 10 b = 20
# 第三方变量 # c = a # a = b # b = c # print(a,b) # 加减法 # a = a+b # b = a-b # a = a-b # print(a,b) # 语言特性 a,b = b,a print(a) print(b)
数字比较
1 2 3 4 5 6 7 8 9 10
i = 10 j = 20 if i > j: print(">") elif i == j: print("==") elif i < j: print("<") else: print("未知")
使用lambda来创建匿名函数
1 2 3 4
POWER = lambda x,y : x ** y a = 10 b = 20 print(POWER(10,20))
输出一个随机数
1 2 3 4
import random print(random.randint(10,20)) print(random.random()) print(random.uniform(10,20))
学习使用按位与 &
1 2 3 4 5 6
if __name__ == '__name__': a = 0x77 b = a & 3 print ('a & b = %d' % b) b &= 7 print ('a & b = %d' %b)
学习使用按位或 _
1 2 3 4 5 6 7 8 9
#!/usr/bin/python # -*- coding: UTF-8 -*- if __name__ == '__main__': a = 0o77 b = a | 3 print ('a | b is %d' % b) b |= 7 print ('a | b is %d' % b)
学习使用按位异 ^
1 2 3 4 5 6 7 8 9
#!/usr/bin/python # -*- coding: UTF-8 -*-
if __name__ == '__main__': a = 0o77 b = a ^ 3 print ('The a ^ 3 = %d' % b) b ^= 7 print ('The a ^ b = %d' % b)
取一个整数a从右端开始的4~7位
1 2 3 4 5 6 7 8 9
#!/usr/bin/python # -*- coding: UTF-8 -*- if __name__ == '__main__': a = int(input('input a number:\n')) b = a >> 4 c = ~(~0 << 4) d = b & c print ('%o\t%o' %(a,d))
学习使用按位取反 ~
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/python # -*- coding: UTF-8 -*-
a = 7 b = ~a
c = -7 d = ~c
print ('变量 a 取反结果为: %d' % b) print ('变量 c 取反结果为: %d' % d)
统计字符串长度
1 2
str = input("Please input the string:") print("The length of your string is %d" % len(str))
打印出杨辉三角形
1 2 3 4 5 6 7 8 9 10 11
a = [] n = int(input("n:")) for i inrange(n): a.append([]) for j inrange(i+1): if j==0or j==i: a[i].append(1) else: a[i].append(a[i-1][j]+a[i-1][j-1])
definp(numbers): for i inrange(6): numbers.append(int(raw_input('输入一个数字:\n'))) p = 0 defarr_max(array): max = 0 for i inrange(1,len(array) - 1): p = i if array[p] > array[max] : max = p k = max array[0],array[k] = array[k],array[0] defarr_min(array): min = 0 for i inrange(1,len(array) - 1): p = i if array[p] < array[min] : min = p l = min array[5],array[l] = array[l],array[5] defoutp(numbers): for i inrange(len(numbers)): print numbers[i] if __name__ == '__main__': array = [] inp(array) # 输入 6 个数字并放入数组 arr_max(array) # 获取最大元素并与第一个元素交换 arr_min(array) # 获取最小元素并与最后一个元素交换 print'计算结果:' outp(array)
有n个整数,使其前面各数顺序向后移m个位位置,最后m个数变成最前面的
1 2 3 4 5 6 7 8 9 10 11
a = [2,8,6,1,78,45,34,2] b = [0,0,0,0, 0, 0, 0,0] m = int(input("m:")) t = 0 for i inrange(m,len(b)): b[i] = a[t] t += 1 for i inrange(len(b) - t): b[i] = a[t] t += 1 print(b)
if __name__ == '__main__': nmax = 50 n = int(raw_input('请输入总人数:')) num = [] for i inrange(n): num.append(i + 1) i = 0 k = 0 m = 0 while m < n - 1: if num[i] != 0 : k += 1 if k == 3: num[i] = 0 k = 0 m += 1 i += 1 if i == n : i = 0 i = 0 while num[i] == 0: i += 1 print num[i]
写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度
1 2 3 4 5 6 7 8
defmy_len(s): i = 0 for each in s: i += 1 return i
s = input("Please input the string here:") print(my_len(s))
n = int(input("n:")) student = [] definput_stu(): for i inrange(n): print("------第%d位学生的信息录入开始------" % (i+1)) name = input("请输入学生姓名: ") chinese = int(input("请输入%s的语文成绩: " % name)) math = int(input("请输入%s的数学成绩: " % name)) english = int(input("请输入%s的英语成绩: " % name))
student.append([]) student[i].append(name) student[i].append(chinese) student[i].append(math) student[i].append(english) # 打印学生信息 defoutput_stu(): for i in student: print("-------%s-------" % i[0]) print("chinese: %d" % i[1]) print("math: %d" % i[2]) print("english: %d" % i[3]) input_stu() output_stu()
创建一个链表格
1 2
ptr = [input("please input the number:") for x inrange(5)] print(ptr)
反向输出一个链表
1 2 3 4 5 6 7 8 9
ptr = [input("please input the number:") for x inrange(5)]
# 1 # ptr.reverse() # print(ptr)
# 2 for i inrange(4,-1,-1): print(ptr[i])
列表排序及连接
1 2 3 4 5 6
a = [3, 4, 5, 1, 2]
# a.sort(reverse=True) # print(a)
print(str(123)+'123')
放松一下,算一道简单的题目
1 2 3 4 5 6 7 8 9 10
if __name__ == '__main__': for i inrange(5): n = 0 if i != 1: n += 1 if i == 3: n += 1 if i == 4: n += 1 if i != 4: n += 1 if n == 3: print(64 + i) print(n)
defa(n): if n%2 == 0: print(b(n)) else: print(c(n)) return defb(n): # 2 - n sum = 0 for i inrange(2,n+1,2): sum += 1/i returnsum defc(n): # 1 --- n sum = 0 for i inrange(1,n+1,2): print(i) returnsum
if __name__ == '__main__': n = int(input("n:")) a(n)
循环输出列表
1 2 3
a = [s for s in"Fuck you!"] for i inrange(len(a)): print(a[i],end='')
找到年龄最大的人,并输出。请找出程序中有什么问题
1 2 3 4 5 6 7
person = {"li":18, "wang": 50, "zhang":20, "sun":22} m ='li' for i in person.keys(): if person[m] < person[i]: m=i print("%s %d" % (m,person[m]))
字符串排序
1 2 3 4 5 6 7 8
str1 = input("string1:") str2 = input("string2:") str3 = input("string3:") print(str1,str2,str3) if str1>str2: str1,str2 = str2,str1 if str1>str3: str1,str3 = str3,str1 if str2>str3: str2,str3 = str3,str2 print(str1,str2,str3)
猴子分桃
1 2 3 4 5 6 7 8 9 10 11 12 13
i=1 while1: # 0 - 4 temp = i for j inrange(5): if temp % 5 != 1: break else: temp = (temp-1)/5*4 if j==4: print(i) exit() i += 1
a = int(input("n:")) b = 9 # 9 / 13 while b%a!=0: b = b * 10 + 9# 99 print(len(str(b)))
两个字符串连接程序
1 2 3
a = input() b = input() print(a+b)
回答结果 (结构体变量传递)
1 2 3 4 5 6 7 8 9 10 11 12
classstudent: x = 0 c = 0 deff(stu): stu.x = 20 stu.c = 'c' a = student() a.X = 3 a.c = 'a' f(a) print(a.x,a.c)
读取七个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*
1 2 3 4 5
for i inrange(7): num = int(input("num:")) whilenot(num>=1and num<=50): num = int(input("num:")) print(num * '*')
某个公司采用公用电话传递数据…
1 2 3 4 5 6 7 8 9 10 11 12 13 14
num = int(input("num:")) a = num % 10 b = num // 10 % 10 c = num // 100 % 10 d = num // 1000 res = 0 res += (a + 5)%10 res *= 10 res += (b + 5)%10 res *= 10 res += (c + 5)%10 res *= 10 res += (d + 5)%10 print(res)
列表使用实例
1 2 3 4 5
matrix =[[1, 2, 3], [4, 5, 6], [7, 8, 9]] col2 = [row[0] for row in matrix] # get a column from a matrix print(col2)
时间函数举例1
1 2 3 4 5
if __name__ == '__main__': import time print(time.ctime(time.time())) print(time.asctime(time.localtime(time.time()))) print(time.asctime(time.gmtime(time.time())))
时间函数举例2
1 2 3 4 5 6
import time start = time.time() for i inrange(1000): print(i) end = time.time() print(end-start)