今日内容:
列表
元组
内容回顾与补充
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_x
result = "**".join(name) # 循环每个元素,并在元素和元素之间加入连接符。
print(result)
公共功能
(1)索引:获取一个字符
(2)切片:获取一段字符(子序列)
(3)步长
name = "alex"
val1=name[0:-1:2] #输出结果为:ae
val2=name[1:-1:2] #输出结果为:l
val3=name[1::2] #输出结果是:lx
val4=name[::2] #输出结果是:ae
val5=name[-1:0:-2] #输出结果是:xl
print(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")
#输出的结果为:a
name='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 = 0
while 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.请打印:1234568910
for 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
)
#
方式二:
del
users
[
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)#4
for 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 #正确