简要介绍编程技巧的重要性以及本文的主要内容。
strtok 进行字符串分割char *strtok(char *str, const char *delim) 分割字符串
使用 delim 指定的分隔符来分割 str 字符串,然后返回指向第一个找到的子字符串(即第一个“token”)的指针
int main()
{
char str[] = "one,two,three";
char *token = strtok(str, ",");
printf("%s\n", token);
token = strtok(NULL, ",");
printf("%s\n", token);
token = strtok(NULL, ",");
printf("%s\n", token);
return 0;
}strcat(char *d, char *s) 将字符串s拼接在字符串d的末尾
int strlen(char *) 返回字符串的长度,不含末尾0
Char *strstr(char* s1, char * s2) 字符串找子串
• File Pointer: FILE*
• File open function: fopen(file_name, mode)
• FILE Pointer closer: fclose(FILE fp*)
• Character reading function: getc(FILE fp*)
• char *fgets(char *line, int maxLineSize, FILE *fp)
• int fputs(char *line, File *fp)
while((fgets(line, 200, fp)) != NULL){
fputs(line, outf);
}printf 和 scanf 的高级用法qsort 函数的使用转义字符
输入
Scanner类
import matplotlib.pyplot as plt
def main():
# 创建包含数据点X和Y坐标的列表
x_coords = [0, 1, 2, 3, 4]
y_coords = [0, 3, 1, 5, 2]
# 绘制线图
plt.plot(x_coords, y_coords, marker='o')
# 添加标题和轴标签
plt.title('Sales by Year')
plt.xlabel('Year')
plt.ylabel('Sales')
# 自定义刻度标记
plt.xticks([0, 1, 2, 3, 4], ['2016', '2017', '2018', '2019', '2020'])
plt.yticks([0, 1, 2, 3, 4, 5], ['$0m', '$1m', '$2m', '$3m', '$4m', '$5m'])
# 显示网格
plt.grid(True)
# 显示图表
plt.show()
if __name__ == '__main__':
main()import matplotlib.pyplot as plt
left_edges = [0, 10, 20, 30, 40] # 条形的左边缘位置
heights = [100, 200, 300, 400, 500] # 条形的高度
bar_width = 5 # 条形的宽度
plt.bar(left_edges, heights, width=bar_width) # 绘制条形图
plt.show()import matplotlib.pyplot as plt
values = [20, 60, 80, 40] # 饼图各部分的值
slice_labels = ['1st Qtr', '2nd Qtr', '3rd Qtr', '4th Qtr'] # 饼图各部分的标签
# 绘制饼图
plt.pie(values, labels=slice_labels)
# 添加标题
plt.title('Sales by Quarter')
# 显示图表
plt.show()List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式如下:
变量[头下标:尾下标]
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。
另外,也可以使用 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
end 关键字在Python中,end作为一个关键字,通常与字符串的print函数一起使用。print函数默认在每次调用后都会输出一个换行符\n,从而开始新的一行。
如果我们需要单行输出多个内容,可以在print函数之后加相应的关键字来实现。
# 默认情况下,print函数会在输出后换行
print("Hello, World!")
# 使用end参数指定不换行,而是输出一个空格
print("Hello, ", end="")
print("World!")通过中括号[a:b]获取列表中的元素,从下表a开始,结束于下表b,下表b索引的元素不输出。
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])可以通过直接赋值的方法实现对列表中元素的修改
可以通过 append() 方法来添加列表中元素项的个数
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')可以通过关键字del实现对列表中某个元素的删除
list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)列表常见函数方法:
append() 方法:将某个元素添加到列表len(list) 方法:返回该列表的长度list.count(obj)方法:统计某个元素在列表中出现的次数Python 的元组与列表类似,不同之处在于元组的元素不能修改。
初始化:元组使用小括号 ( ),列表使用方括号 [ ]。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

创建方式:
dict()实现创建空字典。字典通过键值来实现访问相应的数据
字典中的键值可以是数字,字符串,元组,但不能是[]列表
字典中元素的删除依然使用关键字del
集合(set)是一个无序的不重复元素序列。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。
s.add( x ) 只能添加单个元素s.update( x ) 可以添加列表,但是是将列表中的元素单独存储s.remove( x )len(s)file_object = open("resource.txt",'r')
读取文件:
file_object.read()
写入文件:
file_object.write('String') 字符串
with语句自动开关文件with open(filename, mode) as file_variable:
# 在这里可以使用file_variable来操作文件else语句只有没有抛出异常才会执行
try:
statement
except ExceptionName:
statement
else:
statement
使用 try-except 处理异常
while True:
try:
x = int(input("请输入一个数字: "))
break
except ValueError:
print("您输入的不是数字,请再次尝试输入!")finally语句不管有没有抛出异常都会执行

class people:
name = ""
age = 0
__weight = 0
def __init__(self, name, age, weight):
self.name = name
self.age = age
self.weight = weight
def speak(self):
print("%s 说: 我 %d 岁。" %(self.name,self.age))
class student(people):
grade = ''
def __init__(self, name, age, weight, grade):
people.__init__(self, name, age, weight)
self.grade = grade
def speak(self):
print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
class speaker():
topic = ''
name = ''
def __init__(self, name, topic):
self.name = name
self.topic = topic
def speak(self):
print("我叫 %s,我是一个演说家,我演讲的主题是 %s" % (self.name, self.topic))
class sample(speaker,student):
a = ''
def __init__(self,name,age,weight,grade,topic):
student.__init__(self, name, age, weight, grade)
speaker.__init__(self, name, topic)
test = sample("Tim", 25,60,2,"Python")
test.speak()def gcd(x, y):
if x % y == 0:
return y
else:
return gcd(y, x % y)Base Case:最后一下肯定是把最小的盘从1移到3
Recursive Case:
将1上面除去最大的盘子以上的所有盘子通过3为中介移到2
将最大的盘子移到3
将2上的n-1个盘子通过3为中介返回到1