Day1,初识Python
作业:
name = ' aleX'
print(name.strip())
print(name.startswith('al'))
print(name.endswith('X'))
print(name.replace('l','p'))
name1 = name.split('l')
print(name1)
print(name.upper())
print(name.lower())
print(name[1])
print(name[0:3])
print(name[3:5]) # 也可print(name[3:]) 和 print(name[-2::])
print(name.index('e'))
print(name[0:-1:])
输出结果:
所学知识:
一:编程与编程语言
1、什么是编程?
``` 编程即程序员根据需求把自己的思想流程按照某种编程语言的语法风格编写下来,产出的结果就是包含一堆字符的文件。 强调:程序在未运行前跟普通文件无异,只有程序在运行时,文件内所写的字符才有特定的语法意义 ```
2、编程的目的?
``` 计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果。 ```
3、什么是编程语言?
``` 上面提及的能够被计算机所识别的表达方式即编程语言,语言是沟通的介质,而编程语言是程序员与计算机沟通的介质。在编程的世界里,计算机更像是人的奴隶,人类编程的目的就命令奴隶去工作。 ```
二、python基础
### 1、python注释 ```python #: 单行注释 ''' 多行注释 ''' ``` ### 2、命名规范 ```python # 建议下划线命名法 ``` ### 3、 变量的三大特性 ```python id type value ```
三、基本数据类型
1.初始python
##初始python
# id,type,value # python 对象三要素:Id,Type,Value # Id:唯一标识一个对象 # Type:标识对象的类型 # Value:对象的值 # # a is b 判断 a 对象是否就是 b 对象(通过id来判断) # a == b 判断 a 对象的值是否和 b 对象的值相等(通过value来判断) # x = 10 # y = 10 ''' python小计数池(python优化机制): 在变量值产生后指定的范围内, 在内存中事先开辟一块内存空间, 然后分别把指定范围内的变量存放进去。 # 范围为[-5,256] ''' # print(id(x)) # print(id(y)) # # name = 'tank' # print(type(x)) # print(type(name)) # 判断值是否相等 # print(x == y) # 判断id是否相等 # # 常量(常量也是变量,在python中大家都规定只要是大写的变量都称之为常量) SCHOOL = '安徽工程大学' # 用户与程序交互 # name = input('input your name:') # pwd = input('请输入密码:') # # print(name, pwd) # print(type(name), type(pwd)) ''' python2: raw_input() python3: input() ''' # 数字类型 # 整型int # number = 100 # int(100) # number2 = int(100) # print(number) # print(number2) # 浮点型 float # sal = 15.0 # float(15.0) # sal2 = float(15.0) # print(sal) # print(sal2) # 字符串类型 # name = 'tank' # name2 = "tank" # content = ''' # 1r1r1r # 21r12r1 # r12r # 12r1r21 # r12r1r2 # 12r1r # ''' # # print(name, name2, content) # python中字符串可以相加、相乘 # # 输出为:tank jam # 列表类型 # []括号内以逗号隔开,可存放多个不同类型的值。 # list1 = ['张曼曼', 'tank', '涂懿磊', 11, 1.0, ['jason', 200]] # print(list1[0]) # print(list1[5][0]) # 字典类型 # 在{}内,都逗号隔开,可存放多个值,每个值以key: value的形式存储 # 存 dict1 = {'name': "tank", "age": 18} # {name="tank", "age"=18} # 取 print(dict1["name"]) # 布尔类型 # True or False # print(10 == 10) # True # print(10 == 11) # False # 注意: 所有数据类型都自带布尔, 0、None、空都为False # if 0: # print('111') # # if None: # print('111') # # if []: # print('111') # # else: # print('222') # 格式化输出 # 可以在输出时给字符串类型做一次替换 # %s占位符,%d可以替换数字类型 # number = input('请输入:') # str1 = ''' # 尊敬的用户,您的话费余额为%s元。 # ''' % number # # print(str1) # for循环 list1 = [1, 2, 3, 4, 5] for line in list1: print(line) for line in range(1, 10): print(line) dict1 = {'name': "tank", "age": 18} for key in dict1: print(key) print(dict1[key])
2.字符串的内置方法
# # 字符串的操作 # str1 = 'my name is xxx, my age is 18。' # 优先掌握的操作: # 1、按索引取值(正向取+反向取) :只能取 # print(str1[3]) # # 2、切片(顾头不顾尾,步长) # 函数名[start:stop:step] # 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 # split()从左向右寻找,以某个元素为中心将左右分割成两个元素并放入列表中 # rsplit()从右向左寻找,以某个元素为中心将左右分割成两个元素并放入列表中 # splitlines()根据换行符(\n)分割并将元素放入列表中 # 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())
3.列表的内置方法
list1 = ['tank', 18, 'male', 3.0, 9] # 优先掌握的操作: # 1、按索引存取值(正向存取+反向存取):即可存也可以取 # 正向取值 从0开始 # print(list1[4]) # 9 # 反向取值 从-1开始 print(list1[-2]) # 3.0 # 2、切片(顾头不顾尾,步长) # 函数名[start:stop:step] # 正索引以序列的开始为起点,负索引以序列的结束为起点 # start应该小于stop,否则返回空字符串 print(list1[1:5]) # [18,'male',3.0,9] print(list1[-4:-1]) # 步长 print(list1[1:5:2]) # [18,3.0] # 3、长度 print(len(list1)) # 5 # 4、成员运算in和not in print('tank' in list1) # True print('tank' not in list1) # False # 5、追加 # 在列表末尾追加值 list1.append('张全蛋') list1.append('赵铁柱') print(list1) # ['tank', 18, 'male', 3.0, 9, '张全蛋', '赵铁柱'] # 6、删除 # pop取出列表中的值 print(list1.pop()) # ()默认不写为-1,取最后一位 print(list1.pop(0)) # tank # # # remove删除列表中的值 # name = list1.remove('tank') # 直接删除列表中的tank,赋值给name为None # print(name) # print(list1) # 7、循环 for line in list1: print(line,end=' ')
# 列表类型:
# 1.insert() # 插入
# 第一个参数: 索引 第二个参数: 插入的值
list1 = ['tank', 18, 'male', 3.0, 9, '广东', 'tank', [1, 2]]
list1.insert(2, 'oldboy')
print(list1)
# 2.pop() # 取出
# 3.remove() # 移#
# 4.count() # 查看某个值的个数
print(list1.count('tank'))
# 5.index() # 查看值的索引
print(list1.index('广东'), '---广东')
# # 6.clear() # 清空列表的值
# list1.clear()
# print(list1)
#
#
# 7.copy() # 浅拷贝 # 不占用地址空间
# 将list1的内存地址浅拷贝赋值给list2
list2 = list1.copy()
print(list2, '添加值前')
# 将list1的原地址直接赋值给了list3
list3 = list1
print(list3, '添加值前')
# 深拷贝() # 占用新的地址空间
from copy import deepcopy
# 将list1的值深拷贝赋值给list4
list4 = deepcopy(list1)
# 追加jason到list1中
list1.append('jason')
print(list4, '添加值后')
print(list2, '添加值后')
print(list3, '添加值后')
# 给list1中的可变列表进行追加值
list1[8].append('tank')
# 打印直接赋值、深、浅拷贝的结果
# 浅拷贝: list1的列表中外层值改变对其不影响
# 但对list1中的可变类型进行修改则会随之改变值
print(list2)
print(list3)
# 深拷贝: 把list1中的所有值完全拷贝到一个新的地址中
# 进而与list1完全隔离开
print(list4)
#
#
# 8.extend() # 合并
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1)
#
# 9.reverse() # 反转
list1.reverse()
print(list1)
#
# 10.sort() # 排序
list3 = [1, 3, 5, 8, 10, 2, 4, 6]
# 升序
list3.sort()
print(list3)
#
# 降序
list3.sort(reverse=True)
print(list3)
# tab : 往右空四个空格
# shift + tab : 往左减四个空格
总结:
说来惭愧,大学三年学的少,忘的多。现在听课跟不上,很多基础知识都不知道,现在靠上实训课和学校python教材。可以说是一顿恶补,哈哈哈!
在第一天所学知识中,有很多都是问的度娘,尤其是切片的部分,找了好多例题与分析才搞通。总之是完成了,自己完成,不过博客还是不会写,就按照上课给的分类分吧,估计有很多人和我一样吧。。。
无所谓了,以前欠下的债,现在慢慢还,加油fighting!!!