print("welcome to shanxi university children free aduct need")
age=input("please enter your age\n")
ifage>=18:
print("you are aduct please give me ten yuan")
print("happy you go")
错误原因是:在比较操作中,一个字符串(str)类型与一个整数(int)类型使用了>=比较运算符,而这是Python不支持的。根据文档中关于input语句的说明,input()默认获取的是字符串类型。因此,当代码中从输入获取age时,它实际上是字符串类型,但后续代码却直接用它和整数18进行比较,导致了类型错误。解决方案: 如文档中“五类型转化”部分所述,你需要使用int(x)进行类型转换,将输入的字符串转换为整数,然后进行比较。print("welcome to shanxi university children free aduct need")
age=int(input("please enter your age\n"))
ifage>=18:
print("you are aduct please give me ten yuan")
print("happy you go")
3.if else语句
4.if elif else语句进行多条件判断
5判断语句的嵌套使用(多条件多层次的判断)
二 python循环语句
1.while循环
1.基础语法
i=0
whilei<100:
print("I love you")
i+=1
num=random.randint(1,100)2while的嵌套使用
2for循环
1基础语法
for循环就是将字符串的内容依次取出,所以for循环也被称以为:遍历循环2range语句
获取一个从0开始,到num结束的数字序列(不含num本身)获得一个从num1开始,到num2结束的数字序列(不含num2本身)获取一个从num1开始,到num2结束的数字序列(不含num2本身)数字之间的步长,以step为准(step默认为1)3for循环的变量作用域
4for循环的嵌套使用
5break和continue关键字
5.1continue
5.2break
三 函数
3.1函数的定义语法
3.2函数的传入参数
print(f"{x}+{y}的结果是{result}")3.3函数返回值
3.3.1基础定义
注意 return后面的语句不会执行
3.3.2None类型
print(f"无返回值函数,返回的内容是:{result}")print(f"玩返回值函数,返回的类型是:{type(result)}")1.在if判断中,None等同于False 用于函数中主动返回None 配合if判断做出相关的处理print("Sorry, you are not old enough")3.4函数的说明文档
3.5函数的嵌套调用
先把函数B中的任务执行完才会回到上次函数A执行的位置3.6函数的变量作用域
3.6.1局部变量
3.6.2全局变量
3.6.3global关键字
global +变量 使函数内定义的变量成为全局变量3.7函数的多返回值
3.8函数多种参数传递方式
defuser_into(name,age,gender):print(f"你的名字是{name},年龄是{age},性别是{gender}")user_into(name="小明",age=20,gender="男")defuser_into(name,age,gender):print(f"你的名字是{name},年龄是{age},性别是{gender}")user_into(age=20,name="小明",gender="男")可以和位置参数混用,位置参数必须在前,且匹配参数顺序defuser_into(name,age,gender):print(f"你的名字是{name},年龄是{age},性别是{gender}")user_into("小明",age=20,gender="男")函数调用时,如果有位置参数时,位置参数必须在关键字参数前,但关键字参数之间不存在先后顺序
3缺省参数
defuser_into(name,age,gender='男'):print(f"你的名字是{name},年龄是{age},性别是{gender}")设置默认值,不传参时使用默认值,默认值必须写道最后面4.不定长参数
4.1通过位置的不定长
传进的所有参数都会被args变量收集,它会根据传进参数的位置合并成一个元组,args是元组类型,这就是位置传递4.2通过关键字的不定长
user_input(name="小王",age=18,sex="男")3.9函数作为参数传递
调用函数cumpute作为参数,传入test_func函数中使用3.10lambda匿名函数
test_func(lambda x,y:x+y)四.数据容器
4.1列表 List
4.1.1列表的定义与性质
4.1.1.1定义
1.列表一次可以存储多个数据,且可以为不同数据类型my_list=['python',666,True]my_list2=[[1,2,3],[4,5,6]]4.1.2列表的下标索引
4.1.2.1单层索引
name_list=["张三","李四","王五"]4.1.2.2多层索引
my_list2=[[1,2,3],[4,5,6]]4.1.3列表的常用功能
4.1.3.1列表的查询功能(方法)
功能:查找指定元素在列表的下标,如果找不到报错ValueErrormy_list=['it','is', 'a', 'test']index=my_list.index('is')my_list=['it','is', 'a', 'test']index=my_list.index('hello')4.1.3.2列表修改的功能(方法)
my_list=['it','is', 'a', 'test']语法:列表.insert(下标,元素)指定位置插入my_list=['it','is', 'a', 'test']print(f"插入元素后是{my_list}")my_list=['it','is', 'a', 'test']print(f"追加元素后是{my_list}")语法:列表.extend(其它数据容器) 将其它数据容器的内容取出,依次追加到尾部my_list=['it','is', 'a', 'test']print(f"追加批量元素后是{my_list}")my_list=['it','is', 'a', 'test']print(f"删除元素后是{my_list}")my_list=['it','is', 'a', 'test']print(f"删除元素后是{my_list},取出的元素是{element}")my_list=['it','is', 'a', 'test','a']print(f"删除元素后是{my_list}")my_list=['it','is', 'a', 'test','a']my_list=['it','is', 'a', 'test','a']my_list=['it','is', 'a', 'test','a']print(f"列表的元素个数一共有{count}个")4.1.3.3列表的遍历
my_list=[21,25,21,23,22,20]my_list=[21,25,21,23,22,20]print(f"列表的元素是{element}")4.2元组 tuple
4.2.1元组的特点:
可以存储多个,不同类型的元素,但是不可以修改 防止被篡改4.2.2元组的定义:
print(f"t1的类型是{type(t1)},内容是{t1}")print(f"t2的类型是{type(t2)},内容是{t2}")print(f"t3的类型是{type(t3)},内容是{t3}")定义单个元组类型时,必须在后面加逗号
print(f"t4的类型是{type(t4)}")print(f"t5的类型是{type(t5)}")4.2.3元组的嵌套
print(f"t5的类型是:{type(t5)},内容是:{t5}")4.2.4元组的操作
print(f"t5的类型是:{type(t5)},内容是:{t5}")print(f"从嵌套列表中获取的元素是:{num}")t6=('zhangsan','lisi','wangwu')print(f"lisi在t6中的索引是:{index}")t6=('zhangsan','lisi','wangwu','lisi')print(f"t6中lisi出现的次数是:{count}")t6=('zhangsan','lisi','wangwu','lisi')4.2.5元组的遍历
t6=('zhangsan','lisi','wangwu','lisi')print(f"元组内的元素有{t6[index]}")t6=('zhangsan','lisi','wangwu','lisi')4.2.6元组不可修改
t6=('zhangsan','lisi','wangwu','lisi')t6=('zhangsan','lisi','wangwu','lisi',['zhangsan','lisi'])4.3字符串 str
4.3.1特点
1字符串同元组一样,是一个无法修改的数据容器,修改,移除,追加等操作均无法完成,如果必须做,只能得到一共全新的字符串,4.3.2操作功能
my_str="shanxi university is in shanxi"print(f"从字符串{my_str}中取出的字符是{value}和{value2}")my_str="shanxi university is in shanxi"print(f"查找的字符串在字符串中的索引为:{value}")注意:不是修改字符串本身,而是得到了一个全新的字符串my_str="shanxi university is in shanxi"new_my_str=my_str.replace("shanxi","beijing")print(f"修改后的字符串为:{new_my_str}")功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存放入列表对象中my_str="shanxi university is in shanxi"my_str_list=my_str.split(" ")print(f"将字符串{my_str}切分后得到列表为:{my_str_list}")print(f"类型是:{type(my_str_list)}")my_str=" shanxi university is in shanxi "new_my_str=my_str.strip()print(f"{my_str}去除首尾空格后的字符串为:{new_my_str}")去除前后指定字符串 语法:字符串.strip(元素)my_str="12shanxi university is in shanxi21"new_my_str=my_str.strip("12")print(f"{my_str}去除首尾12后的字符串为:{new_my_str}")my_str="12shanxi university is in shanxi21"count=my_str.count("shanxi")print(f"字符串中出现shanxi的次数为:{count}")my_str="12shanxi university is in shanxi21"print(f"字符串的长度是:{count}")4.3.3字符串的遍历
my_str="shanxi university is in shanxi"while indexmy_str="shanxi university is in shanxi"4.4序列与序列的切片
4.4.1概念
列表,元组,字符串均可以视为序列
4.4.2切片
1.起始下标表示从何处开始,可以留空,留空视作从头开始2.结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾步长为负数:反向取(起始下标和结束下标也要反向标记)序列切片不会影响序列本身,会得到一个新的序列(因为元组和字符串不可更改)
my_tuple2=(0,1,2,3,4,5,6)4.5集合 set
4.5.1定义
my_set={'山西大学','计算机与信息技术学院','人工智能专业','山西大学','计算机与信息技术学院','人工智能专业','山西大学','计算机与信息技术学院','人工智能专业'}print(f"myset的类型为:{type(my_set)}内容是:{my_set}")print(f"myset_empty的类型为:{type(my_set_empty)}内容是:{my_set_empty}")4.5.2特征
4.5.3常用操作
my_set={'山西大学','计算机与信息技术学院','人工智能专业','山西大学','计算机与信息技术学院','人工智能专业','山西大学','计算机与信息技术学院','人工智能专业'}print(f"myset的内容是:{my_set}")“山西大学”没有被成功添加进去,因为集合的去重性
my_set={'山西大学','计算机与信息技术学院','人工智能专业','山西大学','计算机与信息技术学院','人工智能专业','山西大学','计算机与信息技术学院','人工智能专业'}print(f"myset的内容是:{my_set}")my_set={'山西大学','计算机与信息技术学院','人工智能专业'}print(f"取出来的元素是:{extend}")print(f"myset的内容是:{my_set}")my_set={'山西大学','计算机与信息技术学院','人工智能专业'}print(f"myset的内容是:{my_set}")set3=set1.difference(set2)对比集合1和2中,在集合1中删除和集合2相同的元素set1.difference_update(set2)4.5.4集合的遍历
集合不支持下标索引,因此不能使用while循环进行遍历
4.5.5集合操作总结
4.6字典 dict
4.6.1字典的定义
my_dict={"张三":88,"王五":90,"赵六":100}print(f"字典一的内容是{my_dict}")print(f"字典二的内容是{my_dict2}")print(f"字典三的内容是{my_dict3}")my_dict={"张三":88,"王五":90,"赵六":100,"张三":120,}print(f"字典一的内容是{my_dict}")不可以使用下标索引
my_dict={"张三":88,"王五":90,"赵六":100}my_dict={"张三":{"语文":80,"数学":90,"英语":100},"李四":{"语文":80,"数学":90,"英语":100},"王五":{"语文":80,"数学":90,"英语":100}}print(f"学生的考试信息是:{my_dict}")score=my_dict["张三"]["语文"]score2=my_dict["李四"]["英语"]print(f"张三的语文成绩是:{score}")print(f"李四的英语成绩是:{score2}")4.6.2字典的常用操作
my_dict={1:"one",2:"two",3:"three"}print(f"字典经过修改后为:{my_dict}")print(f"字典经过修改后为:{my_dict}")my_dict={1:"one",2:"two",3:"three"}print(f"字典经过修改后为:{my_dict}")print(f"被删除的元素为:{score}")my_dict={1:"one",2:"two",3:"three"}print(f"字典经过清空后为:{my_dict}")my_dict={1:"one",2:"two",3:"three"}my_dict={1:"one",2:"two",3:"three"}4.6.3字典的遍历
my_dict={1:"one",2:"two",3:"three"}print(f"字典的key是{key},value是{my_dict[key]}")方式二:直接对字典进行for循环,每次都是直接得到key