Life has its own fate, and meeting may not be accidental.

0%

Python系统学习笔记(一)

_首先因为学校没有开设Python这门课程,但是为了补充自己的知识,以及加快在未来遇到Python代码理解使用的速度,所以决定寒假系统的学习一下这门语言,以及自己尝试做一个小项目。预计用时一个半月,学习参考Python100天,能学到哪算哪,因为打过一段时间C++类的竞赛,以及开发过Java语言的项目,所以相信python学习速度会比不懂的人要快(自恋),语言都是相通的嘛,最重要的是语法,还有一些别的语言没有的包。

感谢jackfrued大佬
版本为python3

语句

_注解:C/C++、Java等语言不同,Python中没有用花括号来构造代码块而是使用了缩进的方式来设置代码的层次结构,如果if条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以了,换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块,相当于是一个执行的整体。

分支结构

if 和else

  • 完成:利用if语句判断输入是否为自己想要

    &&语句以及||,在python中为or、and(分辨大小写)
1
2
3
4
5
6
username=input("username:")
passoword=input("password:")
if username=='Chenzidu' or passoword=="admin":
print("yes")
else:
print("no")
1
2
3
4
5
6
username=input("username:")
passoword=input("password:")
if username=='Chenzidu' and passoword=="admin":
print("yes")
else:
print("no")

elif

elif相当于其他语言中的 else if

1
2
3
4
5
6
7
if 条件:
语句块

elif 条件:
语句块
else:
语句块
  • 完成:利用elif判断是管理员还是超级管理员,或者都不是
1
2
3
4
5
6
7
8
username=input("username:")
password=input("password:")
if username == 'ChenZIDu' and password == "admin":
print("Hello! superAdmin")
elif username == "ChenZIDu" or password == "admin":
print("admin")
else:
print("You are not Admin")

完成:分段函数求值

1
2
3
        3x-5 (x>1)
f(x)={ x+2 (-1≤x≤1)
5x+3 (x<-1)

保持print()中打印的值一致,比如说字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
x =int(input("x="))
if x > 1:
print("f(x)="+ str(3 * x -5))
elif x<=-1 and x >= 1:
print("f(x)="+ str(x + 2))
else:
print("f(x)="+ str(5 * x + 3))



x =int(input("x="))
if x > 1:
print("f(x)=%d"%(3 * x -5))
elif x<=-1 and x >= 1:
print("f(x)=%d"%(x + 2))
else:
print("f(x)=%d"%(5 * x + 3))

以及

x =int(input("x="))
if x > 1:
print("f(x)=",3 * x -5)
elif x<=-1 and x >= 1:
print("f(x)=",x + 2)
else:
print("f(x)=",5 * x + 3)

三种都可以但是输出结果不一致


循环结构

for 循环语句

for in range()

  • 完成输出N个数和
1
2
3
4
sum=0
for i in range(100):
sum+=i
print(sum)

range(101)可以用来构造一个从0到100的取值范围,这样就可以构造出一个整数的序列并用于循环中,例如:

  1. range(100)可以产生一个0到99的整数序列。
  2. range(0,100)可以产生一个0到99的整数序列。
  3. range(0,100,10)可以产生一个0到99的奇数序列,其中10是步长,即每次i增加10。
1
2
3
4
sum=0
for i in range(0,100,1):
sum+=i
print(sum)

while 循环语句

  • 完成输入N个数,判断是奇数还是偶数,如果为0退出
1
2
3
4
5
6
7
8
while True:
a =int(input())
if a % 2 == 1:
print("奇数")
elif a%2==0 and a != 0:
print("偶数")
else:
break

完成打印三角形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
*
**
***
****
*****

*
**
***
****
*****

*
***
*****
*******
*********
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
num=int(input("输入行数:"))
for i in range(num):
for _ in range(i+1):
print("*" , end="")
print("")
for i in range(num):
for j in range(num):
if j<num - i -1:
print(" ",end="")
else:
print("*",end="")
print("")
for i in range(num):
for j in range(num-i-1):
print(" ",end="")
for j in range(i * 2 +1):
print("*",end="")
print("")

练习

水仙花数

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:$1^3 + 5^3+ 3^3=153$。

完成:输入一个数字判断是否为水仙花数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
num = int(input("输入验证的水仙花数:"))
log = num

sum = 0

while num >= 9:
t = num % 10
sum += t ** 3 # 表示t的三次方
num = num // 10 # “//”表示整数除法,“/” 表示浮点数除法

sum += num
if sum == log:
print("yes")
else:
print("no")

百钱买鸡

说明:百钱百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?翻译成现代文是:公鸡5元一只,母鸡3元一只,小鸡1元三只,用100块钱买一百只鸡,问公鸡、母鸡、小鸡各有多少只?

代码实现

1
2
3
4
for i in range(20):
for j in range(33):
if i*5 + j*3 <=100:
print("公鸡:%d,母鸡:%d,小鸡:%d" % (i,j,100-5*i-3*j))