今日内容:
列表
元组
内容回顾与补充
1.计算机基础
硬件:CPU/内存/硬盘/主板/网卡
操作系统:linux(免费/开源) centos/ubuntu/redhat
windows
mac
解释器/编译器
补充:编译型语言和解释型语言
编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行。
解释型:写完代码交给解释器,解释器会从上到下一行行代码执行:边解释边执行。 【实时翻译】
简单理解:编译型语言:代码在执行前,编译结果就已经是机器语言;
解释型语言:是代码在执行过程中,才翻译成机器语言,且执行一次翻译一次,所以执行效率低。
软件(即应用程序)
2.环境安装
python解释器:包括py2与py3
开发工具:pycharm
(1)解释器的路径:(以hello.py为例)
# !/usr/bin/env python print('你好') 注意:linux系统应用:赋予文件可执行权限 执行命令为:./hello.py (2) 编码
# !/usr/bin/env python # -*- coding:utf-8 -*- print('你好')
a. 编码种类
acsii/unicode/utf-8 / utf-16/gbk/gb2312
b. 中文表示
utf-8: 3字节
gbk: 2字节
c. python默认解释器编码
py3: utf-8
py2: ascii
d. 输入输出
py2:
输入:raw_input
输出:print ""
py3:
输入:input
输出:print()
e. 数据类型
1. int
py2中有:int/long ; py3中有 int 。
强制转换:int(''76"")
除法:py2(只保留整数位,如果想要正常展示,需要多加一行代码) 和 py3(正常展示)
2. bool
True/False (其他语言:true/false)
特殊为False的其他类型: 0 和 ""
3. str
独有功能
upper/lower
replace
strip/lstrip/rstrip
isdigit:返回只有True与Flase两个值
split / rsplit:分割
补充:
startswith / endswith:以什么开头或结尾,注意starswith()/endswith返回值只有True与Flase
示例如下:
# 判断是否已al开头 """ # 方式一: flag = name.startswith('al') print(flag) """ """ # 方式二: val = name[0:2] if val == 'al': print('是以al开头') print('不是') """
format:字符格式化使用方法如下 name = "我叫{0},年龄:{1}".format('老男孩', 73)
print(name)
encode:以某种类型的编码转换为unicode编码
name = '李杰' # 解释器读取到内存后,按照unicode编码存储:8个字节。v1 = name.encode('utf-8') print(v1) v2 = name.encode('gbk') print(v2)
join:循环每个元素,并在元素和元素之间加入连接符。
name = 'alex' # a_l_e_xresult = "**".join(name) # 循环每个元素,并在元素和元素之间加入连接符。print(result)
公共功能
(1)索引:获取一个字符
(2)切片:获取一段字符(子序列)
(3)步长
name = "alex"val1=name[0:-1:2] #输出结果为:aeval2=name[1:-1:2] #输出结果为:lval3=name[1::2] #输出结果是:lxval4=name[::2] #输出结果是:aeval5=name[-1:0:-2] #输出结果是:xlprint(val1)print(val2)print(val3)print(val4)print(val5)#笔试题:请将字符串反转。val=name[::-1]print(val)
(4) 长度:获取字符长度。
(5)for循环
# name='alex'# for item in name:# print(item)# #输出的结果为:'a','l','e','x'四个字符# name='alex'# for item in name:# print(item)# break# print("123")#输出的结果为:aname='alex'for item in name: print(item) continue print("123")#输出的结果为:'a','l','e','x'四个字符
#练习题#1.for循环打印“alex”的每个元素:for>while#for循环name = "alex"for i in name: print(i)#while循环name = "alex"length = len(name)i = 0while i < length : print(name[i]) i += 1
#2.请打印:1-10(请注意range的特性,顾头不顾尾)for i in range(1,11):#[1,2,3,4,5,6,7,8,9,10,11,12,14] "12345678910" print(i)
#3.请打印:1234568910for i in range(1,11): if i ==7: pass else: print(i)
注意:for和while的应用场景:有穷尽优先使用for,无穷尽用while
5. 变量
6. 注释
7. 条件语句
8. 循环语句:while + for + break + continue
9. 运算符
10. 字符串格式化
%s:代表字符串
%d:代表整型
%%:两个%代表一个%符号
11. 其他
markdown笔记
git
本地:git软件【常用命令】
git status
git add .
git commit -m ''提交记录'
git push origin master
远程:码云 / github(程序员交友平台)
面试相关:
1. 写出你常用的git命令。
答:1. 在码云或GitHub等代码托管的网站创建自己仓库,创建完之后码云会给我一个仓库地址;
2.然后自己编写代码
3.将代码提交到远程仓库
2. 你们公司是怎么用git做开发的?
答:初始化:
进入一个任意文件夹,如:D:\homework\
git init
git config 邮箱
git config 姓名
git remote add origin 仓库地址
注意:至此git已经将 D:\homework\目录管理起来,以后此文件夹有任何变化,git都会检测到(使用 git status 命令可以查看状态)
代码收集并提交:
git status
git add .
git commit -m ''记录"
git push origin master 将本地D:\homework\目录下的内容同步到码云仓库。
修改代码或删除文件等对本地 D:\homework\ 下任何文件做操作。
(4)删除(数字/布尔/字符串除外)、
git status
git add .
git commit -m ''记录"
git push origin master 将本地D:\homework\目录下的内容同步到码云仓库。
【避免】如果远程有本地没有的代码,必须先执行:【可能引发合并问题】
git pull origin master
git status
git add .
git commit -m ''记录"
git push origin master 将本地D:\homework\目录下的内容同步到码云仓库。
12.总结
(1)语法:变量/if/while/云孙福(辅助)
(2)重点:数据类型中的字符串
a.独有功能
b.共有功能
c.for 循环
(3) 解决实际问题:逻辑+代码
1.列表学习
以后想要表示多个”事物“,可以使用列表。
列表公共功能 (1)len
users=["李邵奇","奇航",99]
val=len(users)
print(val)#返回值3
(2)索引
users=["李邵奇","奇航",99]
val=users[0]
print(val)#返回值:李邵奇
(3)切片
users=["李邵奇","奇航",99]
val=users[0:2] # 返回值:李邵奇,奇航
注意:字符串本身不能修改或删除【不可变类型】v1 = "alex".upper()
列表是可变类型。
users=["李邵奇","奇航",99]
#方式一
users.pop(1)
print(users)
#方式二:
delusers[1]
print(users)
(5)修改(字符串/数字/布尔除外)即重新赋值
users=["李邵奇","奇航",99]
users[2]=66
users[0]='李杰'
users[0][1]
(6)步长
users=["李邵奇","奇航",99]
val=users[0:2:2] #输出的结果位:李绍奇
练习题:
#实现一个整数加法计算器(两个数相加):如:content=input("请输入内容:")用户输入:5+9或5+9或5+9(含空白),然后进行分割转换最终进行整数的计算得到结果。
content = input("请输入内容:")strip_content = content.strip()split_content = strip_content.split("+")a = int(split_content[0])b = int(split_content[1])print(a+b) (7)for循环
users=['李邵奇','利奇航','张三丰','李子森']for i in users: print(i)
#输出的结果为:打印users列表中的每一个元素 for ele in i: print(ele)#输出的结果为:打印i字符串中的每一个字符
# 练习题:请通过for循环和数字计数器实现:users=['李邵奇','利奇航','张三丰','李子森']# 0李邵奇# 1利奇航# 2张三丰# 3李子森#方式一# users=['李邵奇','利奇航','张三丰','李子森']# count=0# for i in users:# print(count,i)# count +=1##方法二:users=['李邵奇','利奇航','张三丰','李子森']users_len=len(users)#4for index in range(0,users_len):#[0,1,2,3] print(index,users[index])独有功能:(1)append 在列表的最后边追加元素
users=[]users.append('alex')print(users)
#示例二:users=[]for i in range(0,3): name = input('请输入用户名和密码:') users.append(name)print(users)#['alex,123','oldboy,888','lishaoqi,123']#用户和密码校验username=input('请输入要登陆用户名:')password=input('请输入要登陆密码:')for item in users: result = item.split(',') # 循环得到列表,第一次为['alex','123'],依次为:['oldboy','888']['lishaoqi','123'] user = result[0] #得到每一个列表的第一个元素进行比较 pwd = result[1] if user == username and pwd == password: print('登陆成功') break
(2)insert:插入到指定位置,示例:insert(2,"小李")
(3)remove:删除具体值的元素
(4)pop:根据下标即索引删除元素,如果没有指定索引,默认删除最后一个元素
(5)clear:清空列表
总结:
增:append/insert
删:del/pop/remove/clear
改:重新赋值
查:切片或是索引
列表的嵌套:
users=["alex",0,True,[11,22,33,"老男孩"],[1,['alex','oldboy'],2,3]]
users[0]#alex
users[2]#True
users[0][2]#e
users[3]#[11,22,33,"老男孩"]
users[3][-1]#"老男孩"
users[3][-1][1]#'男'
users[3]=666 #["alex",0,True,666,[1,['alex','oldboy'],2,3]]
2.元组(英文:tuple)
(1)元组书写规范
users=(11,22,33,"老男孩")
(2)公共功能
a.索引(排除int与bool类型)
users=(11,22,33,"老男孩")
print(users[0]) #11
print(user[-1])#老男孩
b.切片(排除int/bool)
users=(11,22,33,"老男孩") print(users[0:2])#11,22
c.步长(排除int/bool)
users=(11,22,33,"老男孩")
print(user[0:2:2]) #11
d.删除(排除int/bool/字符串str/元组tuple)注意:元组与字符串都是不可变类型
e.修改(排除int/bool/字符串str/元组tuple)
f.for循环(排除int/bool)
g:len(排除int/bool)
users=(11,22,33,"老男孩")
print(len(users))# 4
(3)独有功能 (无)
(4)特殊:元组中的元素(儿子)不可被修改/删除。
#示例一:v1=(11,22,33)v1[1]=999#错误v1=999 #正确#示例二:可以嵌套v1=(11,22,33,(44,55,66),(11,2,(99,88,),3))#示例三:嵌套v2=[11,22,33,(11,22,33)]v2[-1][1]=99#错误v2[-1]=123#正确#示例四:嵌套v3=(11,[1,2,3],22,33)v3[1]=666#错误v3[1][2]=123 #正确
总结:
1. 解释型语言和编译型区别以及列举你了解的语言?
1. 解释型语言和编译型区别以及列举你了解的语言?
2. 字符串补充功能
独有:startswith/endswith format encode join共有: 切片 索引 len 步长 for循环 range(0,11)# 帮助你生成一个数字列表[0,1,2,3,4,5,6,7,8,9,10]特性: 不可变,所以字符串中的元素不能被修改或是删除
3. git本地和远程要同步,以后只能操作本地然后提交。4. 列表(可变的数据类型)公共:索引/切片/步长/修改/删除 del /for/len独有:append /insert/pop/remove /clear列表嵌套5. 元组(不可变的数据类型)公共:索引/切片/步长/for/len独有:无元组嵌套:;v3=(11,[1,2,3],22,33)v3[1]=666 #错误v3[1][2]=123 #正确
来源:https://www.cnblogs.com/limin1027/p/12113460.html