Posts with tag tutorials

现在 s 就是 '123 + 1234 = 1357' 了,太神奇了

2024-02-05
langspythontutorials

1. 常规读入输出我们常规读入和输出用的是 input() 和 print():n = int(input()) li = list(map(int, input().split())) # 读入一行数,存储到列表 print('Hello world') print(li[0])2. 格式化字符串用 f 作为前缀的字符串可以将其中花括号中的内容自动转换:n = 123 m = 1234 s = f'{n} + {m} = {n + m}' # 现在 s 就是 '123 + 1234 = 1357' 了,太神奇了这种字符串叫做格式化字符串。3. 文件输入输出USACO 比赛中用不上,但是平时可能有用。# 这里新建了一个变量 fin,后面 open 表示打开文件,'1.in' 是文件名,'r' 表示要读入 # 必须保证 1.in 与 python 源文件在同一个文件夹下哦 fin = open('1.in', 'r') # 'w' 表示要输出 fout = open('1.txt', 'w') # 接下来就是把 input() 换成 fin.readline(),从文件中读入 n = int(fin.readline()) li = list(map(int, fin.readline().split())) # 如果要输出到文件,那么可以用格式化字符串 fout.write('Hello world\n') fout.write(f'{li[0]}\n')4. 如何用 USACO test data 自行评测打开形如这样的地址下载题目的 test data,你可以把下面这行的 jan22 改成 dec21 之类的来切换比赛:http://www.usaco.org/index.php?page=jan22results下载完以后解压得到 1.in 1.out 2.in 2.out 等文件。其中 1.in 1.out 表示第一个测试点的输入数据和标准答案。你可以在运行 python 的时候复制粘贴,也可以用文件读入输出。fout = open('1.txt', 'w') # ... 下面输出到 1.txt 中输出到 1.txt 后,你可以在终端使用 diff 命令比较两个文件。diff 1.txt 1.out如果你的答案和标准答案一样,那么 diff 命令不会有任何输出。如果不一样,他就会告诉你哪里不一样,例如:$ diff 2.out 2.txt 1c1 < hello world: 58 --- > hello world: 59 \ No newline at end of fil

输出为 {1, 2},已经自动排序

2024-02-05
langspythontutorials

1. 函数 def func():语法def func(r): # 函数名为 func,这是自定义的 PI = 3.1415926 return r * PI * PI # 函数需要一个返回值,用 return函数可以被多次利用,就像 len() 函数用来求列表长度一样。例题 1写一个函数,求半径为 r 的圆的面积。def S(r): # 求半径为 r 的圆的面积 PI = 3.1415926 return r * PI * PI print(S(5)) # 输出 49.3480203218738例题 2判断一个整数是否是偶数,如果是,返回 True。def even(n): if n % 2 == 0: return True return False # 可以按条件写多条 return 语句2. 集合 set()语法集合可以用来存数据。它和 list 相似,不同的是 set 中数据自动排序,而且不会重复出现。s = set() s.add(2) s.add(2) # 添加元素,但如果已存在就什么都不做 s.add(1) print(s) # 输出为 {1, 2},已经自动排序 s.remove(1) # 删除元素,如果元素不存在,则会发生错误 print(s) # 输出为 {2} s.clear() # 清空元素 print(2 in s) # 判断元素是否在集合中存在,输出为 False你还可以这样创建一个 set:basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} print(basket) # 输出为 {'orange', 'banana', 'pear', 'apple'}注意:basket = {} 这种写法创建的是一个空的字典,不是一个空的集合。创建空集合应该使用 basket = set()。例题 1输入 $n$ 个数,去掉其中重复的数并从小到大输出,最后输出去重后还剩几个数。n = int(input()) s = set(map(int, input().split())) # 将读入的一行数转换为 set print(*s) # 输出 s 中的所有数字 print(len(s))详细介绍https://www.runoob.com/python3/python3-set.html3. 字典 dict()语法# 创建字典 d1 = { 'abc': 456 } d2 = { 'abc': 123, 98.6: 37 } # 获取字典中对应 key 的值 print(d1['abc']) # 456 print(d2[98.6]) # 37 # 修改字典 d1['abc'] = 123 print(d1['abc']) # 123 # 删除字典元素 del d1['abc'] # 删除一个键 d2.clear() # 清空字典例题 1https://blog.csdn.net/wc19862274581/article/details/124285529问题描述:输入字符串,输出字符串中出现次数最多的字母及其出现次数。如果有多个字母出现次数一样,则按字符从小到大顺序输出字母及其出现次数。输入形式:一个字符串。输出形式:出现次数最多的字母以及其出现次数。样例输入:abcccd样例输出:c 3代码实现:s = input() ma = {} for c in s: if c not in ma: # 如果这个字母没有出现过就初始化为 1 ma[c] = 1 else: # 否则加 1 ma[c] += 1 ans = max(ma.values()) # ma.values() 获取所有的值 # items() 获取所有的键值对,用 sorted() 进行排序后重新用 dict() 重新组成一个有序字典 。这种排序是优先按键排序,其次按值排序 ma = dict(sorted(ma.items())) for c, cnt in ma.items(): if cnt == ans: print(c, cnt)4. 排序 .sort() sorted()ref: https://www.freecodecamp.org/chinese/news/python-sort-how-to-sort-a-list-in-python/a = [2, 1, 3] b = sorted(a) # 不改变 a a.sort() # 改变 a a.sort(reverse=True) # 按特定函数排序 programming_languages = ["Python", "Swift","Java", "C++", "Go", "Rust"] programming_languages.sort(key=len) programming_languages.sort(key=len, reverse=True) # 按自定义函数排序 programming_languages = [{'language':'Python','year':1991}, {'language':'Swift','year':2014}, {'language':'Java', 'year':1995}, {'language':'C++','year':1985}, {'language':'Go','year':2007}, {'language':'Rust','year':2010}, ] def get_year(element): return element['year'] programming_languages.sort(key=get_year) programming_languages.sort(key=get_year, reverse=True

No more posts to load.