第一部分:代码的基本结构
(1)最直接的代码格式-无main函数
python不像c语言,c++和Java,python在实际上可以说都不需要main函数,写多少句的代码,输出什么样的结果。
(2)标准化的代码格式-有main函数
当然,我们也可以让python像其它几类编程语言一样,使用main函数标准化python格式:
我们这里使用的是if __name__ == '__main__':也就是手动设置程序的入口。
(3)尾部标点符号
尾部的标点符号可以要也可以不要:
上述两种都可以输出。
(4)编写代码时需要考虑缩进
上述这个是错误的,print前面没有缩进。
缩进之后就可以了,代表的含义就是print这条代码语句是属于if __name__ == '__main__':主函数里面的。
(5)注释语句
①单行注释#
②多行注释(三个点)
'''
这是第一条注释语句
这是第二条注释语句
这是第三条注释语句
'''
或者:
"""
这是第一条注释语句
这是第二条注释语句
这是第三条注释语句
"""
第二部分:定义变量
python属于动态类型语言,不需要声明数据类型:
字符串的三种表示方式:
单引号,双引号,三引号都可以。
第三部分:输出语句
(1)纯文字基础输出
print("hello,world1");
输出变量的类型:
a="hello";
print(type(a));
(2)纯变量
(3)文字+变量
如果上述变量a的数据类型是字符串,那么这个逗号还可以改成加号:
a="hello";
print("a的值为:"+a+"万");
(4)输出浮点数控制小数点位数
shuju1="zjc";
shuju2="大四学生";
shuju3=21;
shuju4=3.1415926;
print("{}是,{},他的年龄是:{},他算出的圆周率是:{:.2f}".format(shuju1,shuju2,shuju3,shuju4));
(5)输出语句取消自动换行
print("hello", end='')
print("world")
第四部分:输入语句
(1)输入字符串,不带提示
name=input();
print(name);
(2)输入字符串,带提示
name=input("请输入名字:");
print(name);
(3)输入数字
age=int(input("请输入年龄:"));
print(age+1);
第五部分:if条件语句
age=95;
if(age>100):
print("年龄大于100岁");
elif(age>90):
print("年龄介于90和100之间");
else:
print("年龄小于90");
第六部分:循环语句
(1)for循环
n=10;
for i in range(n):
print(i)
(2)while循环
n=10;
while (n>0):
print(n);
n=n-1;
第七部分:continue和break
for i in range(1,10):
for j in range(1,i+1):
if(j==1):
continue;#只结束内部的循环
if(j==3):
break;#代表的是程序终止
print(f"{i}"+"*"f"{j}"+"="f"{i*j}",end=' ')
print();
分析:
continue只是会终止当前这一句话,因此我们可以看到j=1是没有出现,但是不影响第二层for循环的继续向后进行。
当j=2的时候,属于正常的情况,所以能够正常输出j=2的情况,也就是2x2=4的这一条。
但是当j=3的时候,会break,代表的事终止这个内部的for循环,因此不会出现2x3这一条,也不会有2x4,2x5等等,但是外侧的for循环不会终止,因此后面输出的3x2和4x2等等。
第八部分:计算字符串的长度
name="zjc";
result=len(name);
print(result);
第九部分:自定义函数
def jisuan(n):
for i in range(n):
print(i);
jisuan(5);
第十部分:列表
(1)定义
列表中存储的数据类型可以是不同种的数据类型,数据是有序的(有索引),允许有重复数据出现,可以修改元素。
(2)新建并输出列表
list1=["zjc",123,True];
print(type(list1));
print(list1);
print(list1[1]);
(3)获取指定元素的下标索引
list1=["zjc",123,True];
index=list1.index(123);
print(index);
(4)修改操作
list1=["zjc",123,True];
list1[0]="zjc2";
print(list1[0]);
(5)插入操作
list1=["zjc",123,True];
list1.insert(1,"hello");
print(list1);
(6)尾部追加元素
list1=["zjc",123,True];
list1.append("end");
print(list1);
(7)以列表的形式追加元素
list1=["zjc",123,True];
list2=["1","2"];
list1.extend(list2);
print(list1);
(8)用索引删除列表元素方法1
list1=["zjc",123,True];
del list1[0];
print(list1);
(9)用索引删除列表元素方法2
list1=["zjc",123,True];
list1.pop(0);
print(list1);
(10)用元素的方法删除列表元素
list1=["zjc",123,True];
list1.remove("zjc");#删除元素第一次出现的位置
print(list1);
(11)清空列表元素
list1=["zjc",123,True];
list1.clear();
print(list1);
(12)计算列表中某个相同元素的个数
list1=["zjc",123,True];
count=list1.count('2');
print(count);
(13)计算列表中目前有多少个元素
list1=["zjc",123,True];
amount= len(list1);
print(amount);
第十一部分:元组
(1)基本定义
元组是特殊类型的列表,在此基础上不能删除,修改添加元素。
一旦数据弄好,就不允许再修改
使用小括号定义()
(2)一维元组的定义方式
tuple1=(1,2,3,4,5,6);
(3)二维元组的定义方式
tuple2=((1,2,3),(4,5,6));
(4)输出元组数据
tuple1=(1,2,3,4,5,6);
tuple2=((1,2,3),(4,5,6));
print(tuple1[1]);
print(tuple2[1][1]);
(5)获取指定元素的索引值
tuple1=(1,2,3,4,5,6);
index=tuple1.index(1);
print(index);
(6)获取某一个元素的个数
tuple1=(1,2,3,4,5,6);
amount=tuple1.count(1);
print(amount);
(7)计算元组中元素的数量
tuple1=(1,2,3,4,5,6);
sum=len(tuple1);
print(sum);
(8)元组和列表的嵌套使用
tuple3=((1,2,3),[4,5,6]);
#tuple3[0][1]=0;会报错
tuple3[1][1]=100;#不会报错
print(tuple3[1][1]);
元组不可以修改,但是如果元组嵌套列表,那么可以修改内部的列表。
第十二部分:字符串的索引访问
(1)从左访问与从右访问获取字符
string1="helloworld";
value1=string1[3];#从左往右索引
value2=string1[-3];#从右往左索引
print(value1);
print(value2);
(2)获取某个字符的索引值
string1="helloworld";
result=string1.index('h');
print(result);
(3)字符串中的元素替换
string1="helloworld";
string2=string1.replace("he","me");#需要赋值一下,string1的值不会变
print(string2);
(4)字符串切割
string1="helloworld";
#通过o来进行切割
string4=string1.split("o");
print(string4);
(5)去除内部子字符串
string5="12hello21";
string6=string5.strip("12");#去除字符串1,和字符串2
print(string6);
(6)计算某个元素出现的次数
string5="12hello21";
#计算某元素出现的次数
count=string5.count("1");
print(count);
(7)计算字符串的长度
string5="12hello21";
len= len(string5);
print(len);
第十三部分:序列的切片操作
(1)序列的定义
元组,列表,字符串都叫做序列
(2)设置初始索引1和结束索引4
list1=[1,2,3,4,5,6,7];
list2=list1[1:4];#默认步长是1
print(list2);
(3)从头开始,到最后结束,步长为2
list1=[1,2,3,4,5,6,7];
list3=list1[::2]#从头开始,到最后结束,步长为2
print(list3);
(4)步长为-1,代表反转了
list1=[1,2,3,4,5,6,7];
list4=list1[::-1];#步长为-1,代表反转了
print(list4);
(5)步长为-2
list1=[1,2,3,4,5,6,7];
list5=list1[::-2];#步长为-2
print(list5);
(6)设置初始5,结束1,步长为-2
list1=[1,2,3,4,5,6,7];
list5=list1[5:1:-2];#步长为-2,不能写成1:5:-2
print(list5);
第十四部分:集合
(1)集合的定义
集合,在列表的基础上,不允许元素重复,同时无序
使用大括号来表示{}
(2)输出集合元素
set1={"1","2",3};#注意数据类型不同
#print(set1[1]);#不能使用索引
print(set1);
(3)添加新元素
set1={"1","2",3};#注意数据类型不同
set1.add("4");
set1.add("4");#只奏效一次
print(set1);
(4)删除元素
set1={"1","2",3};#注意数据类型不同
set1.remove("1");
print(set1);
(5)随机取出来一个元素
set1={"1","2",3};#注意数据类型不同
result=set1.pop();
print(result);
(6)清空集合
set1={"1","2",3};#注意数据类型不同
set1.clear();
print(set1);
(7)统计集合中元素的数量
set1={"1","2",3};#注意数据类型不同
amount=len(set1);
print(amount);
(8)集合的交集
①方法1
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
result=set1 & set2
print(result)
②方法2
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
result=set1.intersection(set2)
print(result)
(9)集合的并集
①方法1
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
result=set1 | set2
print(result)
②方法2
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
result=set1.union(set2)
print(result)
(10)集合的差集
①方法1
②方法2
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
result= set1.difference(set2)
print(result)
(11)集合的补集
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
result= set1 ^ set2
print(result)
(12)集合的遍历循环
set1 = {1, 2, 3, 4}
for i in set1:
print(i);
第十五部分:字典
(1)定义
键值对的形式,通过姓名找到成绩的方式
跟集合有点像,键不能重复,同时无序,使用的也是大括号{},但也可以使用()
(2)输出字典中的元素
map1={"zjc1":1,"zjc2":2,"zjc3":3};
print(map1);
(3)通过key获取value
map1={"zjc1":1,"zjc2":2,"zjc3":3};
result=map1["zjc1"];
print(result);
(4)嵌套字典
①基础版本
#嵌套字典,一个学生有多个value,也就是有多科成绩
map2={"周杰伦":{100,99,98},"雷军":{101,102,103}};
print(map2);
print(map2["周杰伦"]);
②详细版本
#再详细点
#嵌套字典,一个学生有多个value,也就是有多科成绩
map3={"周杰伦":{"语文":100,"数学":99,"英语":98},"雷军":{"语文":100,"数学":99,"英语":98}};
print(map3);
print(map3["周杰伦"]);
print(map3["周杰伦"]["数学"]);
第十六部分:函数实现多返回值
def shuchu(shuju):
return shuju+1,shuju+2;#相当于一次返回shuju+1,同时返回shuju+2
result1,result2=shuchu(1);
print(result1);
print(result2);
第十七部分:值传递与指针传递
(1)值传递
传递过去的是不可变对象,(整数,浮点数,字符串等),就不会修改。
def shuchu(shuju):
shuju=shuju+1;
#值传递
result=5;
shuchu(result);
print(result);
(2)指针传递
传递过去的是指针(传过去的是可变对象,列表,字典,元组这种):
def shuchu(list):
list.append("hello");
#值传递
list = [1, 2, 3];
shuchu(list);
print(list);