学习Python最基础的语法知识,可以用代码快速实现一些简单的功能。

编码

编程初体验

  • 编码必须要保持:保存和打开一致,否则会乱码。

  • 默认Python解释器是以UTF-8编码的形式打开文件。如果想要修改Python的默认解释器编码,可以这样干:

1
2
3
输入:#  -*- coding:gbk -*-

建议:所有python代码文件都要以UTF-8编码保存和读取。

输出

  • 将结果或内容呈现给用户
1
2
3
4
5
6
7
8
9
例如:
print("看这风景美如画")


print(" **")
print(" ***")
print(" ****")
print(" *****")
print(" ******")
  • 关于输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
默认print在尾部会加换行符
print("看着风景美如画")
print("本想吟诗赠天下")

# 输出结果:
# 看着风景美如画
# 本想吟诗赠天下



想不要换行,则可以这样干:
print("看这风景美如画",end=",")
print("本想吟诗赠天下",end=".")

# 输出结果:
# 看这风景美如画,本想吟诗赠天下。

练习题:

1
2
3
4
5
6
7
8
1.    使用print输出自己的姓名
2. 使用print输出
春眠不觉晓,
处处闻啼鸟。
夜来风雨声,
花落知多少。
3. 试用print输出
春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。

认识数据类型

  • 刚上学时,老师教我们数字、拼音、汉字、真假判断等,然后我们根据学到的内容写作文,老师来检查并打分。
    现在学编程,我教大家int、str、bool等,然后大家根据这些内容来写代码,写完代码交给python解释器去运行。

整型(int)

  • 整形,整数。
    整型,其实就是以前数学课上讲的整数(不包含小数),在写代码时用于表示整数相关的东西,例如:年龄、存款、尺寸、手机号等。一般我们提到的:5、18、22、99…等整数在python中都称为是整型,且支持加/减/乘/除/取余/指数 等操作。
1
2
3
4
5
6
7
8
9
print(2 + 10)  表示两个整型相加

print(2 * 10) 表示两个整型相乘

print(10 / 2) 表示两个整型相除

print(10 % 3) 表示两个整型相除取余数

print(2 ** 4) 表示乘方

字符串(str)

  • 字符串,其实就是我们生活中的文本信息。例如:姓名、地址、自我介绍等。

  • 字符串有一个特点,他必须由引号引起来

1
2
3
4
5
6
7
8
9
10
11
12
单行字符串(也就是不能换行)

print("我是Alex")
print('我是Alex')
print('我是“alex”')
print("中国北京昌平区")

如果是这样:

print("我是
alex")
程序会报错.
1
2
3
4
5
6
7
8
9
多行字符串(可以表示多行数据,即可以换行。)

例如:
print("""中国北京昌平区""")

print('''中国北京昌平区''')

print("""中国北京
昌平区""")
1
2
3
4
5
6
7
8
9
10
11
12
对于字符串的运算:
·加,两个字符串可以通过加号拼接起来。
例如:
print(“alex”+“是金角大王吧”)
输出:alex是金角大王吧
在效果上等于:
print(“alex是金角大王吧”)

·乘,让整形和字符串进行相乘,以实现让字符串重复出现N次并拼接起来
例如:
print( 3 * "我想吃饺子")
输出:我想吃饺子我想吃饺子我想吃饺子

布尔类型(bool)

  • 布尔类型中有两给值:True/False
1
2
3
4
5
6
7
8
9
10
11
例如:
print(1 > 2)
print(False)

输出:False
False

print(1 == 1)
print(True)
输出:True
True

布尔类型实例:

1
2
3
4
5
6
name = input("请输入你的用户名:")

if name == "alex":
print("用户登录成功")
else:
print("用户登录失败")
  • 补充:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
对于两个整型是可以进行比较的,也可以比较他是否相等
例如:
1 > 2
1 == 3

对于两个字符串之间也是可以进行比较的

例如:
“alex” == “eric”

字符串和整型也是可以进行比较
例如:
1 == “alex” 输出:False

注意:整型和字符串之间不能比较大小
例如:1 > “alex” 这是无法进行比较大小的,程序在运行时会报错。

类型转换

  • int,整型定义时,必须是数字且无引号,例如:5、8、9

  • str,字符串定义时,必须用双引号括起来,例如:“中国”、“武沛齐”、“666”

  • bool,布尔值定义时,只能写True和Fales

  • 不同的数据类型都有不同的功能,例如:整型可以加减乘除而字符串只能加(拼接)和乘法。
    如果想要做转换可遵循一个基本规则:想转换什么类型就让他包裹一些。

例如:str(666)是将整型转换为字符串、int(“888”)是将字符串转

转换为整型

字符串转换为整型(渡可渡之人)

1
2
3
4
5
6
7
8
9
10
int("666")            将字符串“666”转换为整型666
int("999") 将字符串“999”转换为整型999

"6" + "9" 的结果应该是:"69"
int("6") + int("9")的结果是:15

特别的:
int(“alex是sb”) 这种情况不能转换为整型,程序会报错。

注意:在字符串转换为整型的时候一定是那些数字加上引号(例如:“9”)才能转换为整型

布尔类型转换为整型

1
2
int(True)  转换完等于 1
int(False) 转换完等于0

转换为字符串

1
2
3
4
5
6
7
8
9
10
#整型转换为字符串

str(345) 结果为:“345” (是字符串)
str(666) + str(9) 结果为:“6669” (是字符串)


#布尔类型转换为字符串:

str(True) 结果为:“True
str(False) 结果为:“False

转换为布尔类型

整型转换为布尔类型

1
2
3
4
5
6
7
bool(1)     结果为:True
bool(2) 结果为:True
bool(0) 结果为:False
bool(-10) 结果为:True


注意:整型转换为布尔类型的时候,只有0转换为Falese,其他的整型都转换为True

字符串转换为布尔

1
2
3
4
5
6
bool(“alex”)  结果为:True
bool(“沙坡帮你”) 结果为:True
bool(“”) 结果为:False 注意:这里是空字符串
bool(“ ”) 结果为:True 注意:这里是用按一个空格的字符串

注意:在字符串转换为布尔类型的时候,只有空字符串转换为False,其他字符串均转换为True

总结

1
2
3
4
5
6
7
8
三句话搞定类型转换:
·其他所有类型转换为布尔类型时,除了空字符串、0以外其他都是True
·字符串转整型时,只有那种“998”格式的字符串才可以转换为整型,其他都报错。
·想要转换为哪种类型,就用这类型的英文包裹一下就行。
例如:
str(...)
int(...)
bool(...)

练习题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1.    计算整型50乘以10再除以5的商并使用print输出。
2. 判断整型8是否大于10的结果并使用print输出
3. 计算整型30除以2得到的余数并使用print输出
4. 使用字符串乘法实现把字符串“我爱我的祖国”创建三遍并拼接起来最终使用print输出
5. 判断字符串“wupeiqi”和“alex”是否相等的结果并使用print输出
6. 判断整型666和整型666是否相等的结果并使用print输出
7. 判断字符串“666”和整型666是否相等的结果并使用print输出
8. 看代码写结果(禁止运行代码):

print( int("100")*3)
print( int("123") + int("88"))
print( str(111) + str(222) )
print( str(111)*3 )
print( str(111) == 111)
print( bool(-1))
print( bool(0) )
print( bool("") )
print( bool("你好") )
print( True == True)
print( True == False)
print( bool("") == bool(0) )

注意:类型转换不是改变原来的值,实际在底层是新创建了一个值。例如有整数6,然后使用str6)转化了一下得到“6”,实际上这个字符串“6”是依据整数6新创建的。

变量

  • 变量,其实就是我们生活中起别名和外号,让变量名指向某个值,格式为:【变量名 = 值】,以后可以通过变量名来操作其对应的值。
1
2
3
4
5
6
7
8
9
10
11
12
例如:
name = "武沛齐"
print(name) 输出结果:武沛齐

age = 18
name = "alex"
flge = 1 > 18
address = "北京昌平" + "沙河"
addr = "北京昌平" + "沙河" + name

print(addr) 输出结果:北京昌平沙河alex
print(flge) 输出结果:Fales
  • 注意:给一个值起一个变量名的时候用等号
1
2
3
4
5
6
7
8
9
例如:
age = 18
还可以这样写:
number = 1 == 2(前面的一个等于号指的是赋值,后面两个等于号是比较这两个值是否相等,如果相等则是True,如果不想等则是False)


注意:
·给变量赋值 例如:age = 18
·让age代指值 例如: age = 18

变量名的规范

  • 每个编程语言的变量名规范都大差不差
1
2
3
4
5
6
7
8
三个规范:
·变量名只能由字母、数字、下划线组成。
·不能以数字开头
例如:9name = “alex” (这种情况会报错)
·不能使用python内置的关键字
例如:def = “alex” (def是python内置的关键字,这种情况会报错。)
break = 123 (break也是python内置的关键字,这种情况也会报错)
python的关键字有:and as assert break class continue def del elif else except exec finally for from global if import in is lambdo not or pass print raise return try while with yield......
  • 规范变量名的两个建议
1
2
3
4
5
6
7
8
9
下划线连接命名(小写)
例如:
father_name = “wupeiqi”
brother_age = 19

见名知意
age = 18
color = “red”
current_user_name = “吉诺比利”
1
2
3
4
5
6
7
8
9
10
练习题:
name = “吉诺比利”
name0 = “帕克”
name_1 = “邓肯”
_coach = “波波维奇”
_ = “卡哇伊”
year_1_ = “1990”
_1_year = “1990”
nba-team = “马刺”
new*name = “伦纳德”

变量内存指向关系

  • 通过学习上述变量知识让我们对变量有了初步认识,接下来我们就要从稍稍高级一些的角度来学习变量,即:内存指向(在电脑的内存中是怎么存储的)。

情景一

1
name = “wupeiqi”
  • 在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域。

情景二

1
2
name = “wupeiqi”
name = “alex”
  • 在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域。然后又再内存中创建了一块区域保存字符串“alex”name变量名则指向“alex”所在的区域,不再指向“wupeiqi”所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)

情景三

1
2
name = “wupeiqi”
new_name = name
  • 在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域。new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。

情景四

1
2
3
name = “wupeiqi”
new_name = name
name =”alex”
  • 在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域(灰色线),然后new_name指向name所指向的内存区域,最后又创建了一块区域存放“alex”,让name变量指向“alex”所在区域。

情景五

1
2
num = 18
age = str(num)
  • 在计算机的内存中创建一块区域保存整型18,name变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串“18”,age变量指向保存这个字符串的内存区域。

练习题

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
1.看代码写结果 

alex_length = 3
wupeiqi_length = 18
total = alex_length +wupeiqi_length
print(total)

2.按要求写代码

# 假设age为小明的年龄
age = 18
# 问:已知小李比小明大3岁,计算小李年龄赋值给ming_age变量并输出。
ming_age =
# 问:已知大刘比小明和小李年龄的和还要大5岁,
# 计算大刘的年龄赋值给liu_age变量并输入。



3.看代码写结果
nicekname = "一米八大高个"
username = nicekname

username = "弟弟"
print(nicekname)
print(username)


4.看代码写结果
nickname = "一米八大高个"
username = nickname
nickname = "弟弟"

print(nickname)
print(username)

5看代码写结果

nickname = "一米八大高个"
username = "弟弟"
text = username + nickname
print(text)

6看代码写结果

nickname = "一米八大高个"
username = nickname
nickname = "弟弟"
text = username + nickname
print(text)

7.看代码写结果

string_number = "20"
num = int(string_number)

data = string_number * 3
print(data)

value = num * 3
print(value)

补充

print()函数

  • 上面的只是print函数的简单用法
  • 现在对print函数的可选项进行补充
1
print(输出项1[,输出项2,...,输出项n,sep=分隔符,end=结束符])
  1. print()函数的简单用法:输出不同类型的变量和常量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1. 输出整型
a = 1
print(a)
# 输出:1

2. 输出字符串
a = "abc"
print(a)
# 输出: abc

3. 输出列表
a = {"a","b","c"}
print(a)

# 输出:{"a","b","c"}

  1. print()函数输出多个变量
1
2
3
4
5
6
7
8
9
10
11
12
a = 1
b = 2
c = 3
print(a,b,c)
# 输出:1 2 3
# 注意:输出多个变量,输出的值之间会用空格隔开

a = "abc"
b = "de"
c = "fh"
print(a,b,c)
# 输出:abc de fh
  1. print()函数修改分隔符
1