一、Python基础
1、注释
python不支持嵌套注释。 不管是多行注释还是单行注释,当注释符作为字符串的一部分出现时,就不能把它们视为注释标记,而应看成正常代码的一部风。‘’‘ ’‘’ , '' '' '' '' '' '',没有将这三个引用看作多行注释,而是将他们看做字符串的开始和结束标志。
2、格式化输出
age = 18 name = 'TOM' weight = 75.5 stu_id = 1 print('今年我的年龄是%d' % age) print('我的名字叫%s' % name) print('我的体重是%.3f' % weight) print('我的体重是%03d' % stu_id) # 不够三位,用0补全 print('我的名字叫:%s ,我的年龄是:%d' % (name,age)) print("我的名字叫:%s,我的年龄是:%d" % (name,age+1)) # 年龄加一岁 print("我的名字叫:%s,今年的年龄是:%d,我的体重是:%s,我的学号是:%03d" % (name,age,weight,stu_id)) name = "TOM" age = 18 weight = 75.5 # %s比较强大 print('我的名字叫:%s,我的年龄是:%s,我的体重是:%s' % (name,age,weight)) name = 'TOM' age = 16 # 语法:f'{表达式}' # 这样的输出格式更加高效和简洁 print(f'我的名字叫{name},我的年龄为{age}')
%s (字符串) %d(有符号的十进制整数) %f(浮点数) %c(字符)
3、转义字符和print的结束符
print('hello world') print('hello\nworld') # hello world直接换行输出 print('\thello') # 前面输出空格再输出hello #在python中,print()默认自带end='\n'这个换行结束符,用户可以按照需求更改结束符 print('hello', end='\n') print('world') print('hello', end='\t') print('hello') print('hello', end='...') print('world')
4、输入与数据类型转换
passward = input('请输入您的密码:') print(f'您输入的密码是:{passward}') #1.input接收到的数据类型都是字符串 print(type(passward)) num = input("请输入一个数字:") print(num) print(type(num)) #2.强制转换为int类型 print(type(int(num))) ''' 因为得到数据类型并不是程序想要的数据类型,这个时候需要借助数据类型转换的函数来转换 ''' num = 1 str1 = '10' #1.将数据转换成浮点类型 float() print(type(float(num))) print(float(num)) print(float(str1)) #2. 将数据转换成字符串型 str() print(type(str(num))) #3.序列转换成元组 tuple() list1 = [10,20] print(type(list1)) print(type(tuple(list1))) print(tuple(list1)) # (100, 200) #4. 将一个元组转换成序列 list() t1 = (100,200) print(list(t1)) # [100, 200] #5.eval() 计算在字符串中的有效Python表达式,并返回一个表达式。把字符串中的数据转换成他原本的类型 str3 = '1' str4 = '2.1' str5 = '(10,20)' str6 = '[10,20]' print(type(eval(str3))) # <class 'int'>
5、逻辑运算符的使用
a = 0 b = 1 c = 2 1.and print((a < b) and (a < c)) # True print(a > b and a < c) # False 2.or print(b > c or a < c) # True 3.not print(not a < b) # False
6、判断循环语句
1、if…elif…
age = int(input('请输入您的年龄')) if age < 18: print(f'您输入的年龄是{age},童工') elif (age >= 18) and (age <= 60): 条件的简化写法* elif 18 <= age <= 60: print(f'您输入的年龄是{age},合法') elif age > 60: print(f'您输入的年龄是{age},退休')
2、三目运算
# 三目运算符 a = 1 b = 2 c = a if a > b else b print(c) aa = 10 bb = 6 cc = aa - bb if aa > bb else bb - aa print(cc) #随机数的使用 1.导入模块 import random 2.使用这个模块中的功能 random.randint
3、while
# 1-100 累加和 i = 1 result = 0 while i <= 100: result += i i += 1 print(result) # 打印三角形,每行星星的个数和行号数相等 # j表示行号 j = 0 while j < 5: # 一行星星的打印 i = 0 while i <= j: # i表示每行里面星星的个数,这个数字要和行号相等所以i要和j联动 print('*', end='') i += 1 # 利用空的print来进行换行 print() j += 1 #九九乘法表 j = 1 while j <= 9: # 一行表达式的开始 i = 1 while i <= j: print(f'{i} * {j} = {i*j} ' , end='\t') i += 1 # 一行表达式的结束 print() # 自带换行符 j += 1
4、for…else…
str1 = 'ilovepython' for i in str1: # 当某些条件成立,退出循环 条件:i取到字符e的时候退出循环 if i == 'e': # continue break print(i) str1 = 'ilovepython' for i in str1: print(i) else: print('循环正常结束执行的else代码')
7、字符串
一、下标和切片
# 序列名[开始位置的下标:结束位置的下表:步长] # 取值区间左闭右开的 str1 = '012345678' # print(str1[2:5:1]) 234 # print(str1[2:5:2]) 24 # print(str1[2:5]) 234 # 如果不写步长,默认步长是1 # print(str1[:5]) 01234 # 如果不写开始,默认从0开始选取 # print(str1[2:]) 2345678 # 如果不写结束,表示选取到最后 # print(str1[:]) 012345678 # 如果不写开始和结束,表示选取所有 # 负数测试 # print(str1[::-1]) 876543210 # 如果步长为负数,表示倒叙选取 # print(str1[-4:-1]) 567 下标为-1表示最后一个数据,依次向前类推 # 终极测试 # print(str1[-4:-1:1]) 567 print(str1[-4:-1:-1]) # 不能选取出数据:从-4开始到-1结束,选取方向从左到右,但是-1步长:从右向左选取 # 如果选取方向(下标开始到结束的方向)和步长方向冲突,则无法选取数据 print(str1[-1:-4:-1]) # 876 方向一致就可以正确输出
二、字符串常用操作方法(查找,修改,判断)
1、查找
mystr = 'hello world and itcast and itsmail and Python' # 1. find() print(mystr.find('and')) # 输出的是12,以为下标是从0开始数的 print(mystr.fing('and',15,30)) print(mystr.find('ands')) # -1,ands字串不存在 # 2. index print(mystr.find('and')) # 12 print(mystr.find('and',15,30)) #23 print(mystr.index('ands')) #如果index查找字串不存在,报错 # 3. count() print(mystr.count('and')) 3 print(mystr.count('and',15,30)) 1 print(mystr.count('ands')) 0 # 4. rfind() print(mystr.rfind('and')) 35 print(mystr.find('ands')) -1 如果没找到,则返回-1 # 5. rindex() print(mystr.rindex('and')) 35 就算是到着找,它的下标还是从左到右从下标0开始的 print(mystr.rindex('ands'))
2、修改
# 遇到列表、字典,内部的数据可以直接修改,修改的就是原列表或者原字典。叫做可变类型。 # 字符串是一个不可变类型的数据 mystr = 'hello world and itcast and itheima and Python' # replace() 把and换成he replace函数有返回值,返回值是修改后的字符串 new_str = mystr.replace('and','he') # new_str = mystr.replace('and','he',1) # 替换次数如果超出字串出席那的次数,表示替换所有这个字串 # new_str = mystr.replace('and','he',10) print(mystr) print(new_str) # 调用了replace函数后,发现原有字符串的数据并没有做到修改,修改后的数据是replace函数的返回值 # 说明字符串是不可变数据类型 # 数据是否可以改变划分为 可变类型,不可变类型 # 2. split() 分割,返回一个列表,丢失分割字符 list1 = mystr.split('and') print(list1) # 3. join() 合并列表里面的字符串数据为一个大字符串 mylist = ['aa','bb','cc'] new_str = '...'.join(mylist) print(new_str)
3、判断
# 判断开头或结尾 mystr = 'hello world and itcast and itheima and Python' # 1. startswith(字串,开始位置下标,结束位置下标):判断字符串是否以某个字串开头 print(mystr.startswith('hello')) print(mystr.startswith('hel')) print(mystr.startswith('hels')) print(mystr.startswith('hell',0,10)) 开始位置下标和结束位置下标可以省略 # 2. endswich(字串,开始位置下标,结束位置下标),始位置下标和结束位置下标可以省略 print(mystr.endswith('Python')) print(mystr.endswith('Pythons')) # 判断 3. isalpha():字母 纯字母才可以,如果中间有空格返回的false print(mystr.isalpha()) # 4. isdigit():数字,中间也不能有空格,否则返回false print(mystr.isdigit()) mystr1 = "12345" print(mystr1.isdigit()) # 5. isalnum():数字或字母或组合 print(mystr1.isalnum()) # True print(mystr.isalnum()) # False 因为中间有空格 mystr2 = 'abc123' print(mystr2.isalnum()) # 6. isspace():判断是否是空白,是返回True print(mystr.isspace()) # False mystr3 = ' ' print(mystr3.isspace()) # True