🏆Python入门

✏️ 变量

变量的命名和使用

1.变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头。

2.变量名不能包含空格,但可以使用下划线来分隔其中的单词。

3.不要将 python关键字和函数名用作变量名,即不要使用 python保留用于特殊用途的单词如 print

4.变量名应该既简单有具有描述性

5.谨慎使用小写字母和大写字母O,因为它们可能被人看错成数字1和0

尽量使用小写的变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意

名称错误通常意味着两种情况:要么是使用变量前忘记给他赋值,要么是输入的变量名不正确

✏️ 字符串

字符串就是一系列字符。在 Pyton中,用引号或者是单引号括起的都是字符串

使用方法修改字符串的大小写

  • title()函数的作用是以首字母大写的方式显示每个单词。
  • upper()将字母全部改为大写显示
  • lower()将字母全部改为小写显示

1️⃣ 拼接字符串

python使用 “+” 号来合并字符。使用制表符(tab)或换行符来添加空白,要在字符中添加tab,可以使用\t

>>> print("Python") 
Python
>>> print("\tPython") 
Python

要在字符串中添加换行符,可使用字符组合\n

>>> print("Languages:\nPython\nC\nJavaScript") 
Languages:
Python 
C 
 JavaScript

可以在同一个字符串中包含制表符和换行符。

>>> print("Languages:\n\tPython\n\tC\n\tJavaScript") 
Languages: 
Python 
C 
JavaScript

1️⃣ 去除空白

>>> favorite_language = 'python ' 
>>> favorite_language
 'python ' 
>>> favorite_language.rstrip()
 'python' 
>>> favorite_language
 'python '

使用 rstrip()函数删除空格,但是这种删除只是暂时的,只有在调用rstrip()函数的时候才会删除空额,

要想永久删除空白,必须将删除的操作的结果存回到变量中:

在编程中,经常需要修改变量的值,再将新值存回到原来的变量中。这就是变量的值可能随程序的运行或用户输入数据而发生变化的原因。

  • lstrip()删除字符串后端的空白
  • strip()删除字符串两端的空白

剥除函数最常用于在存储用户输入前对其进行清理。

使用字符串是避免语法错误

apostrophe.py message = "One of Python's strengths is its diverse community." 

print(message)

撇号位于两个双引号之间,因此 Python解释器能够正确理解这个字符串

## 输出
One of Python's strengths is its diverse community.

如果你使用单引号,Python将无法正确确定字符串的结束位置

message = 'One of Python's strengths is its diverse community.' 
print(message)
##输出报错

✏️ 数字

1️⃣ 整数

在python中,可以对整数执行加减乘除运算

>>> 2 + 3
5
>>> 3 - 2
1
>>> 2 * 3
6
>>> 2 / 3
0.6666666666666666
>>> 

python使用两个乘号表示乘方运算

>>> 2 ** 3
8
>>> 3 ** 3
27
>>> 10 ** 6
1000000
>>> 

python还支持运算次序

>>> 2+3*2
8
>>> (2+3)*2
10
>>> 

2️⃣ 浮点数

带小数点的数字都叫浮点数,从很大程度来说,使用浮点数时都无需考虑其行为

>>> 0.2+0.3
0.5
>>> 0.3+0.7
1.0
>>> 0.2 / 0.1
2.0
>>> 0.3 /0.2
1.4999999999999998
>>> 0.3 / 2
0.15
>>> 

python输出的结果包含的小数为可能时不确定的

>>> 0.2 + 0.1
0.30000000000000004
>>> 3 * 0.1
0.30000000000000004
>>> 

使用函数 str()避免类型错误

age = 18
message = "Happy" + age + "rd Birthday!!"
Traceback (most recent call last):
  File "C:/Users/baixie/Desktop/py_word/birthday.py", line 2, in <module>
    message = "Happy" + age + "rd Birthday!!"
TypeError: can only concatenate str (not "int") to str
>>> 

使用 str即可

>>> age = 18
>>> message = "Happy" + str(age) + "rd Birthday!!"
>>> print(message)
Happy18rd Birthday!!

✏️ Python列表

列表是什么: 列表是按特点顺序排列的元素组成。你可以创建包含字母表中的所有字母,数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间没有任何关系

python中,用方括号[]来表示列表,并用逗号来分隔其中的元素。

bicycles = ['trek', 'cannondale', 'redline', 'specialized'] 
print(bicycles)

##输出
['trek', 'cannondale', 'redline', 'specialized']

1️⃣ 访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉python即可。要访问列表元素,可指出列表的名称在指出元素的索引,并将其放在方括号内

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])

##输出
trek

你还可以使用前面学过的函数 title()、 upper()、 lower()

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].upper())

##输出
TREK

⚠️ 索引从0而不是1开始,使用-1就代表访问最后一个元素,依次-2就是访问倒数第二个函数

2️⃣ 修改、添加和删除元素

现在创建的大多数列表都是动态的,这意味这创建列表后,将随着程序的运行曾删元素

修改元素

motorcycles = ['honda', 'yamaha', 'suzuki'] 
print(motorcycles) 
##输出
['honda', 'yamaha', 'suzuki']

##通过下标直接修改
motorcycles[0] = 'ducati' 
print(motorcycles)

##输出
['ducati', 'yamaha', 'suzuki']

在列表中添加元素 append

在列表后面添加.append["添加的元素"]就可以将元素添加到列表末尾。

motorcycles.append('ducati') 
print(motorcycles)

##输出
['honda', 'yamaha', 'suzuki', 'ducati']

insert() 在列表中插入元素

使用 insert()可以在列表的任何位置添加新元素。为此,你学要指定新元素的索引和值。

motorcycles.insert(0, 'ducati') 
print(motorcycles)
##输出
['ducati', 'honda', 'yamaha', 'suzuki']

从列表中删除元素 del/pop/index

使用del语句删除元素 del [表][表的索引] 这个是永久删除

del motorcycles[0] 
print(motorcycles)

##print
['yamaha', 'suzuki']

使用 pop()删除

有时候你要将元素从列表删除,并接着使用它的值,

pop()可删除列表末尾的元素。并让你能够接着是使用它(也就是可以赋值)。术语弹出(pop)源自这样的类比:列表就行一个饯,而删除列表末尾的元素相当于弹出饯顶元素

popped_motorcycle = motorcycles.pop() 
print(motorcycles) 
print(popped_motorcycle)

使用 pop()弹出列表中任何位置出的元素

first_owned = motorcycles.pop(0) 
print('The first motorcycle I owned was a ' + first_owned.title() + '.')

##print
The first motorcycle I owned was a Honda.

根据值删除元素

有时候,你不晓得要从列表中删除的值所处的位置,但知道要删除的值,可以使用

motorcycles.remove('ducati') 
print(motorcycles)

##print
['honda', 'yamaha', 'suzuki']

3️⃣ 列表排序

你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据的数据顺序

永久排序 sort()

python方法 sort()让你能够较为轻松地对列表进行排序,而且还是永久性的修改。假设你有一个汽车列表,并要让其中的汽车按字母顺序排列。为简化这项任务,我们假设该列表中的所有值都是小写的。

cars = ['bmw', 'audi', 'toyota', 'subaru']  
cars.sort() 
print(cars)

##print
['audi', 'bmw', 'subaru', 'toyota']

使用 sort(reverse=True)按与字母顺序相反的顺序排列元素

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

##print
['toyota', 'subaru', 'bmw', 'audi']

临时排序 sorted()

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特点顺序显示列表元素,同时不影响它们在列表中的原始顺序。

print('here is the original list:')
print(cars)
print(sorted(cars))
print(cars)

##print
here is the original list:
['bmw', 'audi', 'toyota', 'subaru']
['audi', 'bmw', 'subaru', 'toyota']
['bmw', 'audi', 'toyota', 'subaru']

调用 sorted()函数后,列表i元素的排列顺序并没有变。如果你要按与字母顺序相反的顺序显示列表,也可向函数 sorted()传递参数reverse=True

反序列表 reverse()

要反转列表元素的排列顺序,可使用方法reverse().假设汽车列表时按购买时间排列的,可轻松地按照相反的顺序排列其中的汽车:

cars = ['bmw','audi','toyota','subaru']
cars.reverse()
print(cars)

##print
['subaru', 'toyota', 'audi', 'bmw']

方法 reverse()也是永久性地修改列表元素排列顺序,如果想要恢复在调用 reverse()就可以了

列表长度 len()

使用函数 len()可以快速获悉列表的长度,python在计算列表元素总数时时从1开始

cars = ['bmw','audi','toyota','subaru']
print(len(cars))

##print
4

⚠️ 使用列表时避免索引错误

开始使用列表时,经常会遇到一种错误。假设你又一个包含三个元素的列表,却要求获取第四个元素就会报错。如果你要访问最后一个列表时可以使用 [-1]如果发生索引错误却找不到解决办法时,可以先用len()函数查出列表长度。在做判断。

✏️ 操作列表

1️⃣ 遍历列表

你经常需要遍历列表所有元素,对于美国元素执行相同的操作。需要对列表中的每个元素都执行相同操作时,可使用 python中的 for循环

magicians = ['alice','david','carolina']
for magician in magicians:
        print(magician)
  
##print
alice
david
carolina

在for循环中,可对每个元素执行任何操作。

2️⃣ 创建数值列表 range

需要存储一组数字的原因有很多,列如,在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字组成的集合。

Python 函数range() 让你能够轻松的生成一系列的数字

for value in range(1,6):
    print(value)
  
## print
##只打印了1到5没有打印6,这是编程语言中差一行为的结果。函数range()让Python从你指定的的一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值
1
2
3
4
5

使用range创建list

要创建数值列表,可使用函数 list()range()的结果直接转换为列表。如果将 range()作为 list()的参数,将输出为一个数字列表

numbers = list(range(1,7))
print(numbers)

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

使用函数range()时,还可指定步长。

even_num
even_numbers = list(range(2,11,2))
print(even_numbers)

##print
[2, 4, 6, 8, 10]

列子: 将1-10的平方加入到一个列表中

squares.py
squares = []
for value in range(1,11):
    square = value ** 2
    #append()函数,把数值加入到列表的末尾
    squares.append(square)
  
    print(squares)

## print
[1]
[1, 4]
[1, 4, 9]
[1, 4, 9, 16]
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25, 36]
[1, 4, 9, 16, 25, 36, 49]
[1, 4, 9, 16, 25, 36, 49, 64]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

简洁方法

squares = []
for value in range(1,11):
    #square = value ** 2
    #append()函数,把数值加入到列表的末尾
    squares.append(value ** 2)
    print(squares)

最大/最小数值 max/min

digits = [1,2,3,4,5,6,7,8,9,0]
print(min(digits))
print(max(digits))
print(sum(digits))

##print
0
9
4 5

列表推导式

前⾯介绍的⽣成列表 squares 的⽅式包含三四⾏代码,⽽列表推导式让你 只需编写⼀⾏代码就能⽣成这样的列表。列表推导式(list comprehension) 将 for 循环和创建新元素的代码合并成⼀⾏,并⾃动追加新元素。⾯向初 学者的书并⾮都会介绍列表推导式,这⾥之所以介绍,是因为你可能会在 他⼈编写的代码中遇到列表推导式。

suqares = [value ** 3 for value in range(1,11)]
print(suqares)

##print
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

2️⃣ 切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。

输出列表中的前几个元素,需要指定索引的一个和你要输出的最后一个元素的索引

playes = ['charles','martina','michael','florence','eli']
print(playes[0:4])
print(playes[:2])
print(playes[0:])

##print
['charles', 'martina', 'michael', 'florence']
['charles', 'martina']
['charles', 'martina', 'michael', 'florence', 'eli']
>>> 

遍历切片

players = ['charles','martina','michael','florence','eli']
for value in players[:5]:
    print(value)
##print
charles
martina
michael
florence
eli
>>> 

复制列表

你经常需要根据既有列表创建全新的列表。要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引([ : ])

my_foods = ['pizza','falafel','carrot','cake']
firend_foods = my_foods[ : ]
print("My favorite foods are:")
print(my_foods)
print("\nMy fireend's favorite foods are:")
print(firend_foods)

##print
My favorite foods are:
['pizza', 'falafel', 'carrot', 'cake']

My fireend's favorite foods are:
['pizza', 'falafel', 'carrot', 'cake']

3️⃣ 元组

列表非常适合用于存储在程序运行期间可能变化的数据集。python将不能修改的值称为不可变的,而不可变的列表称为元组。

定义元组

元组看起来像列表,但使用圆括号而不是方阔号来表示。定义好元组后,就可以使用索引来访问元素

dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])
200
50

遍历元组中的所有值

也像列表一样,也可以使用for循环来遍历元组中的所有值;

dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

#print
200
50

修改元组变量

修改元组的元素,但可以给存储元组的变量赋值。

dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

想比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不可变,就可以用元组。

✏️ if 语句

编程时经常需要检查一系列条件,并据此决定采取上面措施。在 python中,if语句让你能够检查程序的当前状态,并据此采取相应的措施。

列子:

cars = ['BYD','bmw','subaru','Toyota']
for car in cars:
    if car == "byd":
        print(car.upper())
    else:
        print(car.title())
#print
BYD
Bmw
Subaru
Toyota

1️⃣ 条件测试

每条if语句的核心都是一个值为对或者错。如果为对就会继续执行在if语句后面的代码,如果为 false,就会忽略这些代码。

检查是否相等

大多数条件测试都将一个变量的当前的值进行比肩。最2简单的条件测试检查变量的值是饭否与特定值相等:

>>> car = 'byd'
>>> car == 'byd'
True
>>> car == '123'
False
>>

一个等号是赋值,先给car赋值。两个等号为判断,就是判断car是否等于‘byd’,如果是就输出true如果不是就输出false。

检查是否相等时考虑大小

python在判断时会区分大小写。

>>> car = 'byd'
>>> car == 'byd'
True
>>> car == 'BYD'
False
>>> 

如果大小写来说不重要的话,就可以直接转换为相同的格式来判断

>>> car = 'byd'
>>> car == 'byd'
True
>>> car.upper() == 'BYD'
True
>>> 

检查是否不相等

要判断两个值是否不等,可结合使用惊叹号和等号(!=)来判断不相等.

>>> car = 'byd'
>>> car == 'byd'
True
>>> car != 'byd'
False
>>> 

car = 'byd'
if car != 'bwm':
    print("不相等")
  
##print
不相等

比较数字

tanc = 17
if tanc !=18:
    print("tanc还未满18!!")
#print
tanc还未满18!!

条件语句还可以包含各种数学比较,小于,大于,等于,大于等于,小于等于:

>>> age = 17
>>> age < 17
False
>>> age > 17
False
>>> age > 16
True
>>> age >= 17
True
>>> age <=17
True
>>> 

检查多个条件

and 使用了 and就代表两个都必须都为 true才会判断为 true,如果有一个为 false,那就判断为 false

>>> age_0 = 17
>>> age_1 = 23
>>> age_0 >16 and age_1 > 16
True
>>> age_0 > 17 and age_1 > 23
False
>>> 

使⽤ or 检查多个条件 关键字 or 也能够让你检查多个条件,但只要满⾜其中⼀个条件,就能 通过整个条件测试。仅当所有条件测试都没有通过时,使⽤ or 的表达 式才为 False

>>> age_0 = 22
>>> age_1 = 18
>>> age_0 >= 21 or age_1 >= 21
True
>>> age_0 = 18
>>> age_0 >= 21 or age_1 >= 21

判断特定值是否包含在列表中

有时候,执行操作前必须见检查列表是否包含特定的值。

要判断特定的值是否已经包含在列表中,可使用in。

>>> car = ['byd','bwm','toyota']
>>> 'ford' in car
False
>>> 'byd' in car
True
>>>

检查特定值是否不包含在列表中

检查特定的值未包含在列表中可以使用 not in

banned_users = ['andrew','carolina','david']
user='marie'
if user not in  banned_users:
    print(user.title()+ ",you can post a response if you wish")

#print
Marie,you can post a response if you wish

布尔表达式

与条件表达式原因,布尔表达式的结果要么为True,要么为false

game_active = True
can_edit = False

2️⃣ if-else语句

最简单的if语句只有一个测试和一个操作.if-else就表示 如果就-如果就

age = 17
age_1 = 18
#if age >= 18:
 #   print(age)
#else:
 #   print("erro")
if age_1 !=17:
    print(age_1)
else:
    print("erro")

2️⃣ if-elif-else

如果就-如果就-其他就

age = 20
if age < 4 :
    print("Your adminssion cost is $0.")
elif age < 18:
    print("Your adminssion cost is $5.")
else:
    print("Your adminssion cost is $10.")

python并没有要求if-elif结构后面必须要有else,也可以使用elif代替。

age = 65
if age < 4 :
    print("Your adminssion cost is $0.")
elif age < 18:
    print("Your adminssion cost is $5.")
elif age >= 65:
    print("Your adminssion cost is $10")
#else:
elif age < 65:
    print("Your adminssion cost is $20")
Your adminssion cost is $10