文章目录
前言
提示:这是我第一次写CSDN博客,哈哈哈我感觉很激动!因为一直以来都在这里白嫖!!学到了很多东西!非常感谢这个平台!!一篇博客我打算记录自己的python基础笔记,因为有C语言的基础所以我打算花十天左右(哈哈哈断续学)的时间学完《Python编程从入门到实践》这本书的前11章。以下的笔记我是选择性记的,主要记和C不一样的地方以及自己不熟悉的地方,有利于自己反复回忆!在此悄悄许下一个愿望:希望自己一战成硕,越来越优秀!
变量和简单数据类型
变量
- 变量名只能包含字母、数字和下划线。
- 变量名只能以字母或下划线开头
- 变量名不能包含空格,但是能用下划线来分隔其中的单词
- 不能将python关键字和函数名用作变量名
- 变量名应该简短又具有描述性
- 慎用小写字母l和大写字母O
greeting message #错的
greeting_message #对的
字符串
##删除空白
rstrip() #删除末尾空白
lstrip() #删除开头空白
strip() #删除两头空白
数
#使用两个乘号表示乘方运算
3**2 # ==9
#任意两个数相除,结果总是浮点数
4/2 # ==2.0
#如果一个操作数是整数,另一个数是浮点数,结果也是浮点数
1+2.0 # ==3.0
#书写很大的数时,可使用下划线将其中的数字分组
u_age=14_000_000_000 # 14000000000
#同时给多个变量赋值
x,y,z=0,0,0 #同时给x,y,z赋值0
#全部大写来指出应将某个变量视为常量
MAX_CONNECTION=5000 #该变量为常量 值为5000
列表
从列表中删除元素
##使用del语句删除元素 删除后无法再访问
m=['h','a','l','o']
del m[0] #删除索引为0的元素
print(m) #>> ['a','l','o']
-----------------------------------------------------------------------------------------
##使用pop()删除元素
##方法pop()删除列表末尾的元素,并让你能够接着使用它,列表就像是一个栈,而删除列表末尾的元素就相当于弹出元素
m=['h','a','l','o']
poped_m=m.pop() #将末尾元素弹出栈
print(m) #>>['h','a','l','o']
print(poped_m) #['h','a','l']
#另一个例子
m=['h','a','l','olo']
last_m=m.pop() #将弹出栈的末尾元素赋值给last_m
print(f"The last one is {last_m.title()}") #>> The last one is Olo
###del()和pop()使用的判断标准: 如果要从列表中删除一个元素,且不再以任何方法使用它,就是用del语句;如果删除后还能继续使用,那就用pop()
-----------------------------------------------------------------------------------------
##根据值删除元素 使用remove()
m=['h','a','l','o']
m.remove('l') #在列表中删除值'l'
print(m) #>> ['h','a','o']
-----------------------------------------------------------------------------------------
###使用remove()从列表中删除元素时,也可以接着使用它的值
m=['h','a','loo','o']
too_m='loo'
m.remove(too_m)
print(m) #>> ['h','a','o']
print(f"\n{too_m.title()}is too much for me!") # (此处换行因为\n) >>Loo is too much for me!
###方法remove()只删除第一个指定的值,如果需要删除的值可能在列表中出现多次,就需要使用循环来确保将每一个值都删除
组织列表
##使用方法sort() 对列表永久排序 对列表的修改是永久的
cars=['bmw','audi','toyota','subaru']
cars.sort() #将列表中按元素首字母顺序排序
print(cars) #>>['audi','bmw','subaru','toyota']
-------------------------------------------------------------------------------------
cars=['bmw','audi','toyota','subaru']
cars.sort(reverse=Ture) #将列表中按元素首字母倒序排序
print(cars) #>>['toyota','subaru','bmw','audi']
--------------------------------------------------------------------------------------
##使用sorted()对列表临时排序
cars=['bmw','audi','toyota','subaru']
print(cars) #>>['bmw','audi','toyota','subaru']
print(sorted(cars)) #>>['audi','bmw','subaru','toyota']
--------------------------------------------------------------------------------------
##倒着打印列表 使用reverse()
cars=['bmw','audi','toyota','subaru']
cars.reverse()
print(cars) #>> ['subaru','toyota','audi','bmw']
---------------------------------------------------------------------------------------
##确定列表的长度 len()
cars=['bmw','audi','toyota','subaru']
len(cars) #>> 4
索引错误
##每当访问最后一个元素时,都可以使用索引-1
cars=['bmw','audi','toyota','subaru']
print(cars[-1]) #>>subaru
-----------------------------------------------------------------------------------------
##如果列表为空,这种索引-1访问的方式会报错
cars=[]
print(cars[-1]) #>> Traceback... 报错
操作列表
遍历整个列表
用for循环遍历
magicians=['alice','davida','carolinas'] #定义一个列表magicians
for magician in magicians: #定义for循环 从magicians列表中取一个名字与变量magician关联
print(magician) #输出变量magician 即遍历列表
##先执行外层,再一层层执行内层,又返回外层循环执行
创建数值列表
range()函数
####range()函数
for value in range(1,5): #range函数从指定的第一个值开始数,并在到达你指定的第二个值时停止 (此处在4停止,故输出没有5)
print(value) #输出1 2 3 4 四个数每个数一行
-----------------------------------------------------------------------------------------
##使用range()函数创建数字列表
numbers=list(range(1,6)) #创建列表numbers 使用list()将range()转换为列表
print(numbers) #输出列表
-----------------------------------------------------------------------------------------
##使用range()指定步长
even_numbers=list(range(2,11,2)) #range()从2开始到11结束,步长为2
print(even_numbers) #打印出 1-10的偶数
-----------------------------------------------------------------------------------------
squares=[] #定义一个空列表
for value in range(2,11,2): #变量value关联range 1-10的偶数
square=value**2 #将value的平方赋值给变量square square作为临时变量,也可以不用
squares.append(square) #将square添加到squares列表的末尾
print(squares) #打印列表
##不用临时变量square
squares=[]
for value in range(2,11,2):
squares.append(value**2)
print(squares)
##另一种表达方式:列表解析
squares=[value**2 for value in range(2,11,2)]
print(squares)
使用列表的一部分
切片
players=['charles','martina','michel','florence','eli']
print(players[0:3]) #['charles', 'martina', 'michel']
print(players[-2:]) #['florence', 'eli']
print(players[:4]) #['charles', 'martina', 'michel', 'florence']
print(players[0:3:2]) #['charles', 'michel'] 2表示每隔2个元素提取一个
##到达第二索引之前的元素后停止
-----------------------------------------------------------------------------------------
##复制列表
##同时省略起始索引和终止索引([:])
my_foods=['pizza','falafel','carrot cake'] #创建一个列表
my_food=my_foods[:] #在不指定任何索引的情况下从列表my_foods中提取一个切片,从而创建这个列表的副本,并将该副本赋值给变量my_food
text="my favorite foods are"
print(f'{text.title()}:{my_food}!')
#>> My Favorite Foods Are:['pizza', 'falafel', 'carrot cake']!
-----------------------------------------------------------------------------------------
##注意my_food=my_foods[:]和my_food=my_foods的区别
##以下是my_food=my_foods[:]
my_foods=['pizza','falafel','carrot cake']
my_food=my_foods[:]
my_foods.append('apple')
my_food.append('cookie')
text1="my favorite foods are"
text2="my friend favorite foods are"
print(f'{text1.title()}:{my_foods}!')
print(f'{text2.title()}:{my_food}!')
#>> My Favorite Foods Are:['pizza', 'falafel', 'carrot cake', 'apple']!
# My Friend Favorite Foods Are:['pizza', 'falafel', 'carrot cake', 'cookie']!
##以下是my_food=my_foods
my_foods=['pizza','falafel','carrot cake']
my_food=my_foods
my_foods.append('apple')
my_food.append('cookie')
text1="my favorite foods are"
text2="my friend favorite foods are"
print(f'{text1.title()}:{my_foods}!')
print(f'{text2.title()}:{my_food}!')
#>>My Favorite Foods Are:['pizza', 'falafel', 'carrot cake', 'apple', 'cookie']!
# My Friend Favorite Foods Are:['pizza', 'falafel', 'carrot cake', 'apple', 'cookie']!
###只是用my_food=my_foods 不能得到两个列表,那么对这两个变量进行操作都是在同一个列表中进行的。因为my_food和my_foods都指向了同一个列表
元组
不能修改的值称为不可变的,而不可变的列表称为元组,使用圆括号来标识而非中括号
dimensions=(200,50) #定义元组dimensions且里面有200和50两个元素
print(f'{dimensions[0]},{dimensions[1]}') #200,50
-----------------------------------------------------------------------------------------
##修改元组的值,会报错
dimensions=(200,50)
# print(dimensions[0])
# print(dimensions[1])
dimensions[0]=250
print(dimensions[0])
print(dimensions[1]) #>> traceback
-----------------------------------------------------------------------------------------
my_t=(3,) #定义只含有一个元素的元组
-----------------------------------------------------------------------------------------
##修改元组变量
dimensions=(200,50)
print(f'The orginal dimensions :{dimensions[0]},{dimensions[1]}')
#The orginal dimensions :200,50
dimensions=(400,50)
print(f'The modified dimensions :{dimensions[0]},{dimensions[1]}')
#The modified dimensions :400,50
if语句
if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试。
-
检查时区分大小写,如果不想区分可以用low()
-
区分=和==的区别。=是赋值,==是等号检查是否相等。==相等运算符在两边的值相等时返回True,否则返回False
-
不等于 != 小于 < 小于等于 <= 大于 > 大于等于 >= -
与 and 或 or
cars=['audi','bmw','subaru','toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title()) #Audi BMW Subaru Toyota
-----------------------------------------------------------------------------------------
##检查特定值是否包含在列表中
requested_toppings=['mushrooms','onions','pineapple']
if 'apple' in requested_toppings: #关键字 in 检查列表中是否包含apple 关键字not in是不包含
print('yes')
else:
print('no')
if
age = 19
if age >= 18:
print("too youung!")
if-else
requested_toppings=['mushrooms','onions','pineapple']
if 'apple' in requested_toppings: #关键字 in 检查列表中是否包含apple 关键字not in是不包含
print('yes')
else:
print('no')
if-elif-else
age=12
if age < 4:
print("free!")
elif age < 18:
print("$25")
else:
print("$40")
使用多个elif
第一个条件不满足时才会层层检查,倘若第一个条件满足了,就不再继续往下检查。
age=12
if age < 4:
price = 0
elif age < 18:
price = 25
elif age < 65:
price = 40
else:
price = 20
print(f"you price is ${price}.") #you price is $25.
确定列表不是空的
a_list=[]
if a_list: #此处判断是否是空列表
for a_v in a_list:
print(f"{a_v}")
else:
print("is empty!")
使用多个列表
a_tps=['mus','olive','green','apple','tty']
r_tps=['mus','red','olive']
for r_tp in r_tps:
if r_tp in a_tps:
print("yes")
else:
print("no")
print("\nvery good!")