20191228--python学习第四天

今日内容:

  列表

  元组

内容回顾与补充

  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\ 下任何文件做操作。
                                   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 ] # 返回值:李邵奇, 奇航
   (4) 删除(数字 / 布尔 / 字符串除外)、
    注意: 字符串本身不能修改或删除【不可变类型】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.
解释型语言和编译型区别以及列举你了解的语言?
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 #正确
 










猜你喜欢

转载自www.cnblogs.com/limin1027/p/12113460.html