一、初聊python
1、关于python
Python由荷兰数学和计算机科学研究学会 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。
程序语言并没有绝对的优劣之分,只有最适合自己的。作为初学者,我强烈推荐学习Python。这是因为Python语法清晰,代码友好,易于阅读,同时还有强大的第三方库,包括网络爬虫、数据分析、可视化和人工智能等领域。Python既是一门解释性编程语言,也是面向对象的语言,具有高度的可操作性和可移植性,广泛应用于数据挖掘、信息采集、人工智能、网络安全和自动化测试等领域。此外,Python已经被许多小学生、高中课程和计算机二级考试所采用。
2、python的优势
Python最大的优势在于效率。但对于程序员或科研工作者而言,有时候他们的效率比机器的效率更加重要。因此,使用更加简洁明了的语言可以减轻程序的负担,从而提高程序的质量。Python易学易用,新手也能够快速上手,同时也具有良好的扩展性。虽然Python的底层运行速度比C语言要慢,但Python的结构清晰,能够解放程序员的时间,同时也便于与其他编程语言(如C语言)进行融合。
因此,Python成为了一种广泛应用的编程语言,涉及领域广泛,并且支持跨平台操作和开源。特别是在人工智能领域,Python在IEEE近几年发布的最热门语言中多次排名第一。越来越多的程序爱好者和科技关注者也开始学习Python。
3、python学习建议
- 选择好学习资源:选择一本好的Python教材或者一些好的在线教程,可以帮助你更好地学习Python。
- 实践编程:学习编程语言最好的方法就是实践编程,尝试编写一些简单的程序,然后逐渐增加难度。
- 参与社区:参加Python社区,可以让你更好地了解Python的最新动态和技术发展方向,还可以结交更多的Python爱好者。
- 学习Python库:Python有很多强大的库,如NumPy、Pandas、Matplotlib等,学习这些库可以让你更好地应用Python解决实际问题。
- 解决问题:尝试解决一些实际问题,如数据分析、机器学习等,可以让你更好地理解Python的应用场景和技术。
二、python基础语法
1、Hello World
print("Hello, world!")
2、单引号与双引号
单引号和双引号可以用来表示字符串。它们的区别在于:
- 单引号和双引号在语法上是等价的,可以互相替换。
- 如果字符串本身包含单引号,则可以使用双引号来表示该字符串,反之亦然。例如:‘It’s a beautiful day.’ 和 “He said, “Hello!””
- 如果字符串既包含单引号又包含双引号,则可以使用三引号(‘’’ 或 “”")来表示该字符串。
- 在Python中,一般推荐使用单引号来表示字符串,因为单引号比双引号更常用,更简洁,更符合Python的风格。但是,如果你的字符串中包含单引号,则可以使用双引号来表示该字符串,反之亦然。
总之,单引号和双引号在Python中是等价的,可以根据需要来选择使用哪种引号来表示字符串。
3、python注释
可以使用 # 符号来添加单行注释,或者使用三个引号(‘’’ 或 “”")来添加多行注释。例如:
# 这是一个单行注释
‘’’ 这是一个 多行注释 ‘’’
“”" 这也是一个 多行注释 “”"
4、变量的声明与赋值
可以使用赋值语句来声明和赋值变量。变量名在赋值语句左侧,赋值符号“=”在中间(“==”用于比较是否相等),变量值在右侧。例如:
x = 10
y = "Hello, world!"
在这个例子中,变量x被声明为整数类型,赋值为10。变量y被声明为字符串类型,赋值为"Hello, world!"。
需要注意的是,在Python中,变量的类型是动态的,也就是说,变量的类型会根据赋值的值自动确定。例如:
x = 10
x = "Hello, world!"
在这个例子中,变量x最初被赋值为整数类型,但是后来又被赋值为字符串类型。这种动态类型特性是Python的一个重要特点。
在Python中,可以使用多个变量同时进行赋值。这种方式称为“序列解包”或“解构赋值”,可以将多个变量赋值给一个序列(如列表或元组)的元素,也可以将一个序列的元素赋值给多个变量。
例如,以下代码演示了将三个变量同时赋值的方法:
a, b, c = 1, 2, 3
这等同于以下代码:
a = 1
b = 2
c = 3
此外,还可以使用序列解包将一个序列的元素赋值给多个变量,如下所示:
my_list = [1, 2, 3]
x, y, z = my_list
这将把my_list的第一个元素赋值给x,第二个元素赋值给y,第三个元素赋值给z。
需要注意的是,如果序列的长度与变量的数量不匹配,将会引发ValueError异常。例如,以下代码将引发异常:
a, b = 1, 2, 3
5、变量命名规则
变量命名需要遵循以下规则:
- 变量名只能包含字母、数字和下划线,不能包含空格或其他特殊字符。
- 变量名不能以数字开头。
- 变量名应该具有描述性,能够清晰地表达变量的含义。
- 变量名应该尽量简短,但不要过于简单,以免影响代码的可读性。
- 变量名应该避免使用Python中的关键字,如if、else、while等。
- 变量名通常采用小写字母,多个单词之间可以使用下划线分隔,例如:my_variable。
- 在Python中,变量名是区分大小写的,因此my_variable和My_Variable是不同的变量名。
总之,良好的变量命名可以使代码更加易读、易懂,提高代码的可维护性和可扩展性。
6、运算符号
Python的运算符号包括:
- 算术运算符:加号(+)、减号(-)、乘号(*)、除号(/)、取模(%)、幂运算(**)、整除(//)。
- 比较运算符:等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。
- 逻辑运算符:与(and)、或(or)、非(not)。
- 位运算符:按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)。
- 赋值运算符:等于号(=)、加等于(+=)、减等于(-=)、乘等于(*=)、除等于(/=)、模等于(%=)、幂等于(**=)、位与等于(&=)、位或等于(|=)、位异或等于(^=)、左移等于(<<=)、右移等于(>>=)。
- 成员运算符:in、not in。
- 身份运算符:is、is not。
7、input函数
input函数用于从用户那里获取输入。它的语法如下:
input([prompt])
其中,可选参数prompt
是一个字符串,用于向用户显示提示信息。如果省略prompt
参数,则不会显示任何提示信息。
当程序执行到input
函数时,程序会暂停等待用户输入。用户输入完成后,按下回车键,input
函数将返回用户输入的字符串。例如:
name = input("请输入你的名字:")
print("你好," + name + "!")
运行上述代码后,程序会等待用户输入名字,用户输入完成后,程序会输出类似于“你好,xxx!”的信息,其中xxx是用户输入的名字。
8、字符串拼接方法
字符串的拼接方法可以通过以下两种方式来表示:
①使用%操作符:
例如,要将字符串“hello”和整数“10”插入到另一个字符串中,可以使用以下代码:
str1 = "My name is %s and I am %d years old." % ("John", 10)
print(str1)
输出结果为:
My name is John and I am 10 years old.
在这个例子中,%s表示要插入一个字符串,%d表示要插入一个整数。在%操作符的右侧,用括号括起来的元组包含了要插入的值。
②使用.format()方法:
另外一种字符串的使用方法是使用.format()方法。这个方法可以接受任意数量的参数,并将它们插入到字符串中。例如:
str2 = "My name is {} and I am {} years old.".format("John", 10)
print(str2)
输出结果为:
My name is John and I am 10 years old.
在这个例子中,{}表示要插入一个值。在.format()方法的括号中,按顺序列出要插入的值。
9、常用转义字符:
常见的转义字符有:
- \n - 换行
- \t - 横向制表符
- \r - 回车
- ’ - 单引号
- " - 双引号
- \ - 反斜杠
这些转义字符可以在字符串中使用,以表示特定的字符或行为。例如,使用\n可以在字符串中创建一个新的行
10、流程控制语句
流程控制语句有以下几种:
-
if语句:用于判断条件是否成立,如果条件成立则执行相应的代码块,否则执行另一个代码块。示例:
# 定义一个变量 x = 10 # 如果x小于0,则打印"负数" if x < 0: print("负数") # 如果x等于0,则打印"零" elif x == 0: print("零") # 如果x大于0,则打印"正数" else: print("正数")
-
for循环:用于对可迭代对象进行遍历,每次循环都会取出一个元素进行处理。
fruits = ["apple", "banana", "orange", "grape"] for fruit in fruits: print(fruit)
输出:
apple banana orange grape
for i in range(5): print(i)
输出:
0 1 2 3 4
九九乘法表:
for i in range(1, 10): for j in range(1, i + 1): print('%s X %s = %s' % (i, j, i*j), end=" ") print()
1 X 1 = 1 2 X 1 = 2 2 X 2 = 4 3 X 1 = 3 3 X 2 = 6 3 X 3 = 9 4 X 1 = 4 4 X 2 = 8 4 X 3 = 12 4 X 4 = 16 5 X 1 = 5 5 X 2 = 10 5 X 3 = 15 5 X 4 = 20 5 X 5 = 25 6 X 1 = 6 6 X 2 = 12 6 X 3 = 18 6 X 4 = 24 6 X 5 = 30 6 X 6 = 36 7 X 1 = 7 7 X 2 = 14 7 X 3 = 21 7 X 4 = 28 7 X 5 = 35 7 X 6 = 42 7 X 7 = 49 8 X 1 = 8 8 X 2 = 16 8 X 3 = 24 8 X 4 = 32 8 X 5 = 40 8 X 6 = 48 8 X 7 = 56 8 X 8 = 64 9 X 1 = 9 9 X 2 = 18 9 X 3 = 27 9 X 4 = 36 9 X 5 = 45 9 X 6 = 54 9 X 7 = 63 9 X 8 = 72 9 X 9 = 81
-
while循环:用于在满足条件的情况下重复执行代码块,直到条件不成立为止。
count = 0 while count < 10: print("当前计数:", count) count += 1 print("循环结束!")
这个程序会输出数字0到9,然后打印“循环结束!”一条消息。在这个例子中,我们使用了一个计数器变量count,它的初始值为0。while循环将在count小于10的条件下一直执行,每次循环打印当前计数器的值,并将计数器增加1。当计数器达到10时,循环结束。
-
break语句:用于跳出循环,即使循环条件仍然满足。
-
continue语句:用于跳过当前循环的剩余部分,直接进入下一次循环。
-
pass语句:用于占位,表示不执行任何操作,通常用于占据一个代码块的位置。
使用这些流程控制语句,可以编写出复杂的程序逻辑,实现不同的功能。例如,可以利用if语句来实现条件判断,用for循环来遍历列表中的元素,用while循环来实现某些需要重复执行的操作。同时,break和continue语句可以帮助我们更加灵活地控制程序的流程。
11、not语句用法
not是一个逻辑运算符,用于取反一个布尔值。当not应用于一个布尔值时,它会返回相反的布尔值。例如:
x = True
y = not x
print(y) # 输出 False
在上述示例中,变量y的值为not x的结果,即False,因为x的值为True。如果x的值为False,则y的值将为True。
not也可以用于比较操作,例如:
x = 5
y = 10
if not x > y:
print("x is not greater than y")
在上述示例中,not被用于比较操作x > y,因为x不大于y,所以if语句的条件为True,输出“x is not greater than y”。
12、字符串常用函数
len():返回字符串的长度。
示例:
str1 = "Hello World"
print(len(str1)) # 输出:11
upper():将字符串中的所有字符转换为大写。
示例:
str1 = "Hello World"
print(str1.upper()) # 输出:HELLO WORLD
lower():将字符串中的所有字符转换为小写。
示例:
str1 = "Hello World"
print(str1.lower()) # 输出:hello world
capitalize():将字符串的第一个字符转换为大写。
示例:
str1 = "hello world"
print(str1.capitalize()) # 输出:Hello world
title():将字符串中每个单词的第一个字符转换为大写。
示例:
str1 = "hello world"
print(str1.title()) # 输出:Hello World
strip():去除字符串两端的空格或指定字符。
示例:
str1 = " hello world "
print(str1.strip()) # 输出:hello world
str2 = "****hello world****"
print(str2.strip("*")) # 输出:hello world
find():查找指定字符串在原字符串中的位置。
示例:
str1 = "hello world"
print(str1.find("world")) # 输出:6
replace():将字符串中指定的子串替换为另一个字符串。
示例:
str1 = "hello world"
print(str1.replace("world", "python")) # 输出:hello python
split():将字符串按指定分隔符分割成列表。
示例:
str1 = "hello,world"
print(str1.split(",")) # 输出:['hello', 'world']
join():将列表中的字符串按指定分隔符连接成一个字符串。
示例:
list1 = ['hello', 'world']
print("-".join(list1)) # 输出:hello-world
字符串[]操作
示例:
s = "hello world"
print(s[0]) # 输出'h'
print(s[1:5]) # 输出'ello'
s = "Hello, World!"
print(s[::2]) # 输出 "Hlo ol!"
print(s[::-1]) # 输出 "!dlroW ,olleH"