从0开始的Python教程 -- Control Structures

从0开始的Python教程 – Control Structures

————————————————————————————

流程控制分两种:

  • 分支结构 if else
  • 循环结构 while for

Booleans & Comparisons

布尔以及比较
布尔值只有两种,一个是真,一个是假,以下是运算符:

等式关系
!=					#	不等于
==					#	等于
<					#	小于
>					#	大于
>=					#	大于等于
<=					#	小于等于
布尔逻辑关键字
not					#	取反
or					#	或
and					#	与

注意!!:

= 和 == 有区别
一个等号是赋值符号,把右边的值给左边。
不是等于,等于是逻辑上左右相等的意思。
print(1!=1)
# False
print(2==2)
# True
print(True!=False)
# True
BOOL = "hello" == "hello"
print(BOOL)
# True
BOOL = 5 > 7
print(BOOL)
# False

if Statements

if语句
格式是这样的

if expression:
   statements
   #注意这里的缩进,表示这些内容是if里的statements,缩进建议用tab键,必须对齐

举个例子

num = intput("输入一个自然数")
if num >= 0:
	print(num)

这里会把用户输入的自然数输出。
if 会判断表达式是否为真 ,如果为真就执行后面缩进的内容。

# 当然if可以嵌套
num = 12
if num > 5:
   print("Bigger than 5")
   if num <=47:
      print("Between 5 and 47")
   if num > 47:
      print("Bigger than 47")
'''
Bigger than 5
Between 5 and 47
'''

else Statements

else 语句
else和if搭配使用,如果if为假,else就会执行。

if experssion:
	statements
else:
	statements
num = input("输入一个数字")
if num == 5:
	print("数字等于5")
else:
	print("数字不等于5")

也有俄罗斯套娃
禁止套娃

num = input()
if num == 5:
  print("Number is 5")
else: 
  if num == 11:
    print("Number is 11")
  else:
    if num == 7:
      print("Number is 7")
    else: 
      print("Number isn't 5, 11 or 7")

因为else if太麻烦,所以可以简写成 elif

num = input()
if num == 5:
   print("Number is 5")
elif num == 11:
   print("Number is 11")
elif num == 7:
   print("Number is 7")
else:
   print("Number isn't 5, 11 or 7")

Boolean Logic

布尔逻辑
上面提到过了,就是与、或、非三种
分别是

and
or
not
BOOL = not 1 == 1
print(BOOL)
# False
BOOL = True and False
print(BOOL)
# False
BOOL = True or False
print(BOOL)
# True

Operator Precedence

运算符优先级
就和我们的加减乘除一样,运算符是有优先级的。
可以用括号来控制。
注意:没有中括号、大括号的概念。

Python的运算顺序与普通数学的顺序相同:
先加括号,然后取幂,然后乘/除,再加/减。

while Loops

while 循环

while expression:
	  statements
i = 1
while i <=5:
   print(i)
   i = i + 1
'''
1
2
3
4
5
'''

要小心死循环

while 1==1:
  print("In the loop") 
  # 程序执行到这里以后会一直循环,没有出口。
  # 这个就是死循环,infinite loop

在循环里面,可以用break跳出循环

i = 0
while 1==1:
  print(i)
  i = i + 1
  if i >= 5:
    print("Breaking")
    break
'''
0
1
2
3
4
Breaking
'''

另外一个是continue,跳过一次循环

i = 0
while True:
   i = i + 1
   if i == 2:
      print("Skipping 2")
      continue
   if i == 5:
      print("Breaking")
      break
   print(i)
'''
1
Skipping 2
3
4
Breaking
'''

到这里可能有些绕,读者需要自己慢慢思考。

Lists

数据类型——list
比如说有一个数,我们会给他这样声明

a = 1

那如果有100个数呢,1w个数呢,写一万行吗?

# 因为他们是连续的,所以可以用一个变量l表示一堆数,
# 我们可以这样写。
l = [1,2,3,4,5,6,7,8,9,10]
# 那怎么访问到这些数呢?
print(l[0])
# 1
# 用中括号加数字,数字就好像是每个变量的索引一样,可以快速访问到他们
print(l[1])
# 2
# 注意是0序的!!!

list可以放进任何数据类型(DateType),但是我们一般放同一种数据

number = 3
things = ["string", 0, [1, 2, number], 4.56]
print(things[0])
print(things[1])
print(things[2])
print(things[2][2])
print(things[3])
'''
string
0
[1, 2, 3]
3
4.56
'''

这里我们注意到我们这样一行行写print很麻烦。所以刚刚学到的循环就可以派上用场了。

number = 3
things = ["string", 0, [1, 2, number], 4.56]
i = 0
while i<len(things):
	print(things[i])
	i = i + 1

上面我们也看到了list里面有list,套娃又开始了
一种常见的除了一维,就是二维的。

l = [[1,2,3],[4,5,6],[7,8,9]]
print(l)
i = 0
while i < len(l):
    j = 0
    while j < len(l[i]):
        print(l[i][j],end=' ')
        j += 1
    print()
    i += 1

str类型的数据,也可以这样使用

str = "Hello world!"
print(str[6])
# w

List Operations

list的操作

最简单的一种,是通过下标访问

nums = [7, 7, 7, 7, 7]
nums[2] = 5
print(nums)
# [7, 7, 5, 7, 7]

新加一点东西进之前的list里面

nums = [1, 2, 3]
print(nums + [4, 5, 6])
print(nums * 3)

# [1, 2, 3, 4, 5, 6]
# [1, 2, 3, 1, 2, 3, 1, 2, 3]

判断一个元素是否在list里

words = ["spam", "egg", "spam", "sausage"]
print("spam" in words)
print("egg" in words)
print("tomato" in words)

# True
# True
# False
nums = [1, 2, 3]
print(not 4 in nums)
print(4 not in nums)
print(not 3 in nums)
print(3 not in nums)

# True
# True
# False
# False

List Functions

list相关的函数
list内封装的函数,通过 ’ . ’ 调用

  • append函数
nums = [1, 2, 3]
nums.append(4)
print(nums)
# 1,2,3,4
# append 是把一个元素加到list的最后面
  • insert 函数
words = ["Python", "fun"]
index = 1
words.insert(index, "is")
print(words)
# ['Python', 'is', 'fun']
# 把一个元素插到指定的位置
  • index
letters = ['p', 'q', 'r', 's', 'p', 'u']
print(letters.index('r'))
print(letters.index('p'))
print(letters.index('z'))
# 2
# 0
# ValueError: 'z' is not in list
# index会返回查询的值的下标

list的函数很多,我没有说完,只是举了3个例子,更多的需要读者自己去搜索或者查阅文档

另外,多说一个上面我用过的函数:

  • len

可以知道 list 的长度,或者说元素个数

nums = [1, 3, 5, 2, 4]
print(len(nums))
# 5

Range

range函数
range 会自加,也就是会迭代

numbers = list(range(10))
print(numbers)
# 默认从0开始,到10
# 取不到10
n = list(range(1,5))
# 从1开始到5
print(n)
# [1,2,3,4]
n = list(range(5, 20, 2))
# 从5开始到20,步长为2,默认为1
# [5, 7, 9, 11, 13, 15, 17, 19]

for Loops

for循环
我们先回顾一下wile循环:

words = ["hello", "world", "spam", "eggs"]
counter = 0
while counter <= len(words):
   word = words[counter]
   print(word + "!")
   counter = counter + 1 
'''
hello!
world!
spam!
eggs!
'''

同样的功能,for就更加方便:

for a in b:
	statements

这里的a会在b里迭代,从第一个到最后一个遍历

words = ["hello", "world", "spam", "eggs"]
for word in words:
  print(word + "!")

配合range:

for i in range(3):
  print("hello!")
  # hello
  # hello
  # hello

同样的有:

words = ["hello", "world", "spam", "eggs"]
for i in range(len(words)):
	print(words[i]+!)

文章内容参考了 solo learn

第二章至此结束

基础的操作,到现在为止就讲完了,如果还有不明白的,只能说明前面的知识学习的不够扎实,或者缺少代码量,就是写的少了。
附上一些题和题解

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值