程序代码及运行结果:
1 >>> name = " aleX" 2 >>> print(name.lstrip()) 3 aleX 4 >>> print(name.startswith('al')) 5 False 6 >>> print(name.endswith('X')) 7 True 8 >>> name = name.replace('l', 'p') 9 >>> print(name) 10 apeX 11 >>> list = name.split('l') 12 >>> print(list) 13 [' apeX'] 14 >>> name = name.upper() 15 >>> print(name) 16 APEX 17 >>> name = ' aleX' 18 >>> name = name.lower() 19 >>> print(name) 20 alex 21 >>> name = ' aleX' 22 >>> print(name[1]) 23 a 24 >>> print(name[0:3]) 25 al 26 >>> print(name[3:5]) 27 eX 28 >>> print(name.find('e')) 29 3 30 >>> str = 'Learn Python' 31 >>> print(str[0:-1]) 32 Learn Pytho 33 >>>
课堂笔记
一 变量
1、什么是变量
#变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
2、为什么要有变量
#程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。
3、如何定义变量(图解)
#变量名(相当于门牌号,指向值所在的空间),等号,变量值 name='Kermit' sex='male' age=18 level=10
4、 变量的定义规范
#1. 变量名只能是 字母、数字或下划线的任意组合
#2. 变量名的第一个字符不能是数字
#3. 关键字不能声明为变量名
5、 定义方式:
驼峰体 AgeOfOldboy = 56 NumberOfStudents = 80
下划线(推荐使用) age_of_oldboy = 56 number_of_students = 80
6、定义变量名不好的方式
#1. 变量名为中文、拼音
#2. 变量名过长
#3. 变量名词不达意
7、 定义变量会有:id,type,value
#1 等号比较的是value
#2 is比较的是id
二、常量
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量 举例,假如老男孩老师的年龄会变,那这就是个变量,但在一些情况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量 AGE_OF_OLDBOY = 56 #ps:在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错
三、用户与程序交互
#在python3中 input:用户输入任何值,都存成字符串类型
#在python2中 input:用户输入什么类型,就存成什么类型
raw_input:等于python3的input
四、注释
1、代码注释分单行和多行注释, 单行注释用#
,多行注释可以用三对双引号""" """
2\代码注释的原则:
#1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
#2. 注释可以用中文或英文,但不要用拼音
五、头文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
六、 基本数据类型
什么是数据?为何要有多种类型的数据?
#数据即变量的值,如age=18,18则是我们保存的数据。
#变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识
1、 数字
#int整型 定义:age=10 #age=int(10) 用于标识:年龄,等级,身份证号,qq号,个数
#float浮点型 定义:salary=3.1 #salary=float(3.1) 用于标识:工资,身高,体重,
2、字符串
#在python中,加了引号的字符就是字符串类型,python并没有字符类型。
定义:name='kermit' #name=str('kermit')
用于标识:描述性的内容,如姓名,性别,国籍,种族
3、列表
#在[]内用逗号分隔,可以存放n个任意类型的值
定义:students=['kermit','alex','wupeiqi',] #students=list(['kermit','alex','wupeiqi',])
用于标识:存储多个值的情况,比如一个人有多个爱好
4、字典
#在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
定义:info={'name':'kermit','age':18,'sex':18} #info=dict({'name':'kermit','age':18,'sex':18})
用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值
5、 布尔
#布尔值,一个True一个False,即判断一个条件成立时,用True标识,不成立则用False标识
布尔类型的重点知识!!!:
#所有数据类型都自带布尔值
1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
2、其余均为真
6、重点:
#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
#2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
七、 格式化输出
程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式
比如要求用户输入用户名和年龄,然后打印如下格式:
My name is xxx,my age is xxx.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。
这就用到了占位符,如:%s、%d
#%s字符串占位符:可以接收字符串,也可接收数字
print('My name is %s,my age is %s' %('kermit',18))
#%d数字占位符:只能接收数字
print('My name is %s,my age is %d' %('kermit',18))
print('My name is %s,my age is %d' %('kermit','18')) #报错
#接收用户输入,打印成指定格式
name=input('your name: ')
age=input('your age: ') #用户输入18,会存成字符串18,无法传给%d
print('My name is %s,my age is %s' %(name,age))
#注意:
#print('My name is %s,my age is %d' %(name,age)) #age为字符串类型,无法传给%d,所以会报错
八、 基本运算符
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算
1、算数运算
以下假设变量:a=10,b=20
2、 比较运算
以下假设变量:a=10,b=20
3、 赋值运算
以下假设变量:a=10,b=20
4、逻辑运算
#三者的优先级从高到低分别是:not,or,and
>>> 3>4 and 4>3 or 1==3 and 'x' == 'x' or 3 >3
False
#最好使用括号来区别优先级,其实意义与上面的一样
>>> (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
False
5、身份运算
#is比较的是id
#而==比较的是值
九、 流程控制之if...else
if 条件1:
缩进的代码块
elif 条件2:
缩进的代码块
elif 条件3:
缩进的代码块
......
else:
缩进的代码块
十、 流程控制之while循环
1、 条件循环:while,语法如下
while 条件:
# 循环体
# 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
# 如果条件为假,那么循环体不执行,循环终止
2、 死循环
import time
num=0
while True:
print('count',num)
time.sleep(1)
num+=1
3、 循环嵌套与tag
tag=True
while tag:
......
while tag:
........
while tag:
tag=False
十一、 流程控制之for循环
1 迭代式循环:for,语法如下
for i in range(10):
缩进的代码块
2 break与continue(同上)
3 循环嵌套
for+else
十二、字符串的操作
优先掌握的操作:
1、按索引取值(正向取+反向取) :只能取
print(str1[3])
2、切片(顾头不顾尾,步长)
print(str1[3:7]) # 3 - (7-1)
步长为2
print(str1[3:10:2])
3、长度len
print(len(str1))
4、成员运算in和not in
print('x' in str1) # True
print('T' in str1) # False
5、移除空白strip
去除字符串左右两边的空格
# str1 = ' my name is xxx, my age is 18。 '
# print(str1)
# print(str1.strip())
#
6、切分split
会根据split()括号中的规则去切分字符串,然后把每一个值追加到列表中。
str2 = 'my name is xxx, my age is 18。'
list2 = str2.split(' ')
print(list2)
7、循环
str2 = 'my name is xxx, my age is 18。'
for line in str2:
print(line) # print默认参数end="\n"
print(line, end=" ") # 自定义end参数
需要掌握的
str4 = ' my name is xxx, my age is 18。'
str5 = 'my name is xxx, my age is 18。 '
1、strip,lstrip,rstrip
# l 去除左边的空格或指定符号
# r 去除右边的空格或指定符号
print(str4.lstrip())
print(str5.rstrip())
str4 = '***my name is xxx, my age is 18。'
str5 = 'my name is xxx, my age is 18。***'
print(str4.lstrip('*'))
print(str5.rstrip('*'))
2、lower(转换成小写),upper(转换成大写)
str6 = 'my name is Tank'
print(str6.lower())
print(str6.upper())
3、startswith,endswith (判断字符串首位是否成立)
print(str6.startswith("my")) # True
print(str6.startswith("MY")) # False
print(str6.endswith("Tank")) # True
print(str6.endswith("tank")) # False
4、format的三种玩法
# 方式一: 按照位置替换
str7 = 'my name is {}, my age is {}!'
str7 = str7.format('tank', 18, 111)
print(str7)
#
# # 方式二: 安装索引替换
str7 = 'my name is {0}, my age is {1}!'
str7 = str7.format('tank', 18, 111)
print(str7)
#
# # 方式三: 指名道姓替换
str7 = 'my name is {name}, my age is {age}!'
str7 = str7.format(age=18, name='tank')
print(str7)
5、split,rsplit # 从左边开始切分、从右边开始切分
6、join
# 字符串拼接,会对列表中的数据按照某种标识进行拼接,
# 列表中的值必须是字符串类型
name = 'tank'
age = "18"
# sex = 1
print(':'.join([name, age]))
# 报错expected str instance, int found
# print(':'.join([name, age, sex]))
7、replace
str8 = 'old new'
# 括号中第一个参数是旧参数,第二个参数是新参数
# 两个参数进行替换
str8 = str8.replace('old', 'python')
print(str8)
8、isdigit 判断字符串是否是数字
ID = input('请输入ID')
print(ID)
print(type(ID))
print(ID.isdigit())
十三、列表的操作
list1 = ['tank', 18, 'male', 3.0, 9]
优先掌握的操作:
1、按索引存取值(正向存取+反向存取):即可存也可以取
# 正向取值
print(list1[4]) # 9
# 反向取值
print(list1[-2])
2、切片(顾头不顾尾,步长)
print(list1[1:5])
# 步长
print(list1[1:5:2])
3、长度
print(len(list1))
4、成员运算in和not in
print('tank' in list1) # True
print('tank' not in list1) # False
5、追加
# 在列表末尾追加值
list1.append('张全蛋')
list1.append('赵铁柱')
print(list1)
6、 pop取出列表中的值
print(list1.pop()) # ()默认不写为-1,取最后一位
print(list1.pop(0)) # tank
level = list1.pop() # 取出列表中的老师等级并赋值给level变量
print(level)
print(list1) # ['tank', 18, 'male', 3.0]
# remove删除列表中的值
name = list1.remove('tank') # 直接删除列表中的tank,赋值给name为None
print(name)
print(list1) # [18, 'male', 3.0]
7、循环
for line in list1:
print(line)