大一下暑假,python的学习启蒙于《Python程序设计入门到实践》,和编者的想法不谋而合,“在全面学习Python语法细节之前,寻找应用实践动机。”又因偶然间找到《你也能看得懂的Python算法书》,决定7月底完成python和算法的基础学习。
1. 输入数字number,求阶乘
number=int(input("Enter one number:"))
sum=1
while number>0:
sum=sum*number
number=number-1
print(sum)
number=int(input("Enter one number:"))
sum=1
for i in range(1,number+1):
sum=sum*i
print(sum)
sum=1,在python语言中任何类型的变量都不需要事先声明,此处sum自动被指定为整数(int)型,若sum=1.0 sum="string"则被指定为浮点型 字符串型 |
含for if whie判断指令,最后以":"结尾;判断语句所执行的操作需要缩排一层(可以2格空格或4格空格,也可以是一个tab制表符号,但整个程序中前后要统一) |
for循环的语法格式for变量in变量范围,range是python的内置函数,range(x)表示变量范围(0,x-1)range(x,y,z)表示变量范围x+z到y-z,input和print也是内置函数 |
list=[]
number=int(input("Enter the count of date"))
for i in range (number):
list.append(int(input("Enter a number:")))
print(list)
sum=1
#体会两种不同的for循环格式
for i in range(number):
sum=sum*list[i]
print(sum)
'''
for i in list:
sum=sum*i#i相当于list[i]
print(sum)
'''
关键字或保留字不能被拿来作为变量名称,为避免命名冲突建议使用中多运用下划线来搭配有意义的单词来命名:点这儿,查看所有的关键字
2、输入数学、英语、历史成绩,单科和总成绩按梯度评价
def JudgeSubjects(score1,score2,score3):
if score1>=75:
if score1>=85:
degree1='Great'#两个单引号或双引号之间的一串字符就是字符串,若使用单引号其字符串内不能包含撇号
else:
degree1='Good'
else:
degree1='Bad'
if score2>=80:
if score2>=90:
degree2='Great'
else:
degree2='Good'
else:
degree2='Bad'
if score3>=70:
if score3>=78:
degree3='Great'
else:
degree3='Good'
else:
degree3='Bad'
return{'Maths':degree1,'English':degree2,'History':degree3}#字典,"#"后加解释性语言,仅占一行;若是段落性注释,可前后使用”'''“或”"""“
def JudgeSum(sum):
if sum>=270:
degree='A+'
elif sum>=240:
degree='A'
elif sum>=210:
degree='B+'
elif sum>=190:
degree='B'
else:
degree='C'
return degree
def CalculateSum(score1,score2,score3):
sum=score1*1.1+score2*1.1+score3*0.8
return sum
def InputScore():
score1=int(input("the score of math:"))
if score1<0 or score1>100:
print("The data is wrong.")
score1=int(input("the score of math:"))
score2=int(input("the score of Enlish:"))
if score2<0 or score2>100:
print("The data is wrong.")
score2=int(input("the score of Enlish:"))
score3=int(input("the score of History:"))
if score3<0 or score3>100:
print("The data is wrong.")
score3=int(input("the score of History:"))
return score1,score2,score3#可同时返回多个值
def OutputResult(sum,degree,SL):#此处SL表示字典名字
print('Total score:',sum)
print('Total level:',degree)
print('Mathlevel:',SL['Maths'],'Englishlevel:',SL['English'],'Historylevel:',SL['History'])#SL下标表示是关键字
if __name__=="__main__":
score1,score2,score3=InputScore()
sum=CalculateSum(score1,score2,score3)
degree=JudgeSum(sum)
SL=JudgeSubjects(score1,score2,score3)
OutputResult(sum,degree,SL)#总分,总评价,单科评价
由于程序是自上到下运行的,所以函数必须在调用语句的上面定义,定义函数时要注意代码块前的缩进,(本质上是if语句格式)主函数要放在自定义函数后面。 |
mac和linux系统中可以不写if __name__=="__main__":但window系统会报错,if和后面的__下划线(是两个合并)之间有一个空格,在不必要的时候可以省去主函数 |
Python语言和其他语言不同,可以同时返回多个值,而且可以是不同类型的,需用多个变量在=左边接着。返回多个值时变量之间用“,”隔开,且继承它们对应位置上的值。 |
字典是Python语言中5种标准变量类型之一,其余分别是数字、字符串、列表、元组,对于列表内置函数len 、del、clear、copy字典也能使用,除此之外,字典是根据输入的关键字来寻找对应的值并返回,由键值对组成。 |
letters={1:"abc",4:"s",3:"t"}
letters[2]="e"#给字典加入新的元素(键值对),默认加在所有元素后面
letters["adc"]=6
print(letters)
输出结果:
{1:'abc',4:'s',3:'t',2:'e','adc':6}
3、输出1-11不被5整除的数
n=0
while True:
if n%5==0:
n+=1
continue
elif n==12:
break
print(n)
n+=1
elif相当于c++中的else if,continue结束本次循环,即0,5,10不参与循环,break结束本层循环终止while |
4、已知苹果、菠萝、西瓜和各自所装篮子的单价,给出所买三种水果的数量,求总花费
def apple(num1):
if num1%5==0:
hsum=num1//5#num1//5是指整数部分,python中不存在四舍五入,取整指的是丢掉原来小数部分
else:
hsum=num1//5+1
sum1=2*num1+hsum
return sum1
def pineapple(num2):
sum2=8*num2
return sum2+num2
def watermelon(num3):
sum3=10*num3
return sum3+num3
num1=int(input("Enter the amount of apple:"))
money1=apple(num1)
num2=int(input("Enter the amount of pineapple:"))
money2=pineapple(num2)
num3=int(input("Enter the amount of watermelon:"))
money3=watermelon(num3)
money=money1+money2+money3
print(money)
列表常用内置函数:
- mylist.append(b)列表末尾加上b元素
- mylist.insert(a,b)a表示插入元素b的索引
- mylist.remove(b)移除列表中b的第一个匹配项
- number=mylist.pop(a)弹出a索引对应的元素,若无a为空括号,默认弹出列表中最后一个元素
除此之外,pop可接住弹出元素,返回被删除元素的值
- del mylist[a],删除a索引对应的元素,无返回值功能
len(list)max(list)min(list)list.count(b)list.index(b)list.clear()list.copy()
分别表示长度、最大值、最小值、b出现次数、与b匹配的第一个元素的索引、清空、复制
list=[0,1,2,3,4]
copylist=list
list.pop()
print(list,copylist)
输出结果:
[0,1,2,3][0,1,2,3]
list=[0,1,2,3,4]
copylist=list.copy()
list.pop()
print(list,copylist)
输出结果:
[0,1,2,3][0,1,2,3,4]
直接给新列表赋值,复制的是原列表的存储地址,元素本身并没有复制成两份,而copy能返回复制原列表中的后产生的一组新元素的存储地址 |