python输入一个列表的语句_python 基础学习 day01 语句,列表,包管理

python 基础学习

声明:我对自己说,学习python这个东西,最重要的不是所有东西都记住,而是知道有这么个知识,有这么回事,然后知道知识具体都记录在哪就行了。比如,当我们用正则匹配一个字符串,最后还不想要字符串里的空格,那字符串里就有方法,是什么方法?去找!反正有这个方法。找到以后有很多关于去除字符串空格的方法,看说明就用就好。像 rstrip(), lstrip(), strip(),看一眼啥意思,咋用,用多了就记住了。

1. DOS 命令

# 切换目录

cd [dir]

cd #进入指定目录

cd .. # 退回到上一级目录

cd ..\.. # 向上退回两级目录

cd \ # 切换到根目录

## 切换盘符,直接写盘符名称+:

d:

#显示当前目录内容

dir

# 创建目录

mkdir [dirname] #这就是新建文件夹

# 删除目录

rmdir [dirname] #删除文件夹

#清空控制台

cls

# 获取本机网络ip

ipconfig

# 测试网络是否畅通

ping [地址]

# 重定向

pip freeze > req.txt # 是不是很想linux

2. windows 下的环境变量添加

我们需要把python添加到环境变量,这个在安装时候就有个选项,选上就行。或者右键我的电脑——>属性——>高级系统设置——>环境变量——>双击系统变量里的path——>添加python.exe所在目录(../python3.8)和pip所在目录(../python3.8/Scripts/)到环境变量

3. 包管理

# pip [command] [options]

# 安装一个包,默认最新版本

pip install redis

# 指定安装包版本

pip install redis==3.2.0 #两个等号哦,不是--

# 卸载包

pip uninstall redis

# 看看自己都有啥包啊

pip list

# pip 对包进行版本更新,这个命令对pip自己也管用

pip Install --upgrade redis

pip install --upgrade #要是你不指定宝名,就是所有包都更新

# 查看pip版本

pip --version

# 更新pip版本,dos下

python -m pip intall --upgrade pip

# 查看pip使用帮助

pip freeze --help # 如果我们不会用 pip 下freeze这个命令,可以--help

# 输出所有包名和版本号,并重定向输出到 一个文件,文件不存在就自动创建

pip freeze > requirements.txt #方便以后再安装包的时候方便,可以一行命令装所有包

# 根据给定的报名列表和版本号,安装多个包

pip install -r requirements.txt #你看这刚才那个导出的文件就用上了,这个用在开发环境迁移

# 注意:所有的pip安装的包都在目录 ..\python3.8\lib\site-packages里边

##配置pip镜像,就换换清华源什么的

pip install pip -U #先升级pip

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

##要是只是想临时是由什么源进行包的安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U #也可以用来进行pip升级

4.转义字符

| 转义字符 | 描述 | 转义字符 | 描述 | | ------ | ----------- | ---- | -------- | | \' | 表示一个普通字符单引号 | \r | 回车 | | \" | 表示一个普通字符双引号 | \n | 换行 | | \''' | 一个普通的三单引号 | \\ | 一个普通的字符\ | | \""" | 一个普通的三双引号 | \a | 响铃 | | \t | tab键 | \b | 回删一个字符 |

5. print()函数使用

# 这里只说print()里参数

name = "JOhn"

age = 18

gender = "male"

# print()函数可以打印多个变量,逗号分隔就好

# print()函数参数一,sep="",就是指定我们打印的多个内容用什么分隔

print(name,age,gender,sep="\t")

print(name,age,gender,sep="#")

# print()函数参数二,end="",就是指定打印完成后的结尾是什么,默认是end="\n"

# 所以,如果调用一个 不给参数的 print() 函数,就会换行,哈哈

print("AAAA",end="\t")

print("BBBB",end="\t")

print("CCCC",end="\t")

6.格式化输出

# % 的格式化

person = "John"

address = "北京市海淀区中关村智诚科技大厦4层"

phone = "13888888888"

num = 5

price = 26.578

print("订单收件人:%s,\n收货地址:%s,\n电话:%s,\n商品数量是:%d,单价是:%.2f"%(person,address,phone,num,price))

## %s 说明 : 如果我们前面占位的是 %s,后边无论输入的是啥类型的东西,都会被强制转换为字符串

print("订单收件人:%s,\n收货地址:%s,\n电话:%s,\n商品数量是:%s"%(person,address,phone,num))

## %d 说明,类似的如果我们前面占位的是 %d,后边无论输入的是什么数字,都会被强制转换为整型

## %f 说明,浮点型, %.2,保留两位小数

movie = "大侦探皮卡丘"

ticket = 45.9

count = 35

print("电影:%s\n票价:%.1f\n观看人数:%d\n总票价:%.1f" % (movie,ticket,count,ticket*count))

# "{}".format()的格式化输出,这种比 % 占位的方便,就字符串里用 {} 占位,后边 .format()加上对应位置的变# 量名就行了,不用管变量类型

age = 2

school = "蓝天幼儿园"

money = 10.5

message = "John 今年{}岁了,上的是{},每天有{}元零花钱。".format(age,school,money)

print(message)

##还有一个更牛逼的 f''

name = '太白金星'

age = 18

sex = '男'

msg = F'姓名:{name},性别:{age},年龄:{sex}' # 大写字母也可以

msg = f'姓名:{name},性别:{age},年龄:{sex}'

print(msg)

'''输出结果:姓名:太白金星,性别:18,年龄:男'''

#可以加任意表达式

print(f'{3*21}') # 63

name = 'barry'

print(f"全部大写:{name.upper()}") # 全部大写:BARRY

# 字典也可以

teacher = {'name': '太白金星', 'age': 18}

msg = f"The teacher is {teacher['name']}, aged {teacher['age']}"

print(msg) # The comedian is 太白金星, aged 18

# 列表也行

l1 = ['太白金星', 18]

msg = f'姓名:{l1[0]},年龄:{l1[1]}.'

print(msg) # 姓名:太白金星,年龄:18.

#可以用函数完成相应的功能,然后将返回值返回到字符串相应的位置

def sum_a_b(a,b):

return a + b

a = 1

b = 2

print('求和的结果为' + f'{sum_a_b(a,b)}')

##

##多行 f' '

name = 'barry'

age = 18

ajd = 'handsome'

# speaker = f'''Hi {name}.

# You are {age} years old.

# You are a {ajd} guy!'''

speaker = f'Hi {name}.'\

f'You are {age} years old.'\

f'You are a {ajd} guy!'

print(speaker)

##其他细节

print(f"{{73}}") # {73}

print(f"{{{73}}}") # {73}

print(f"{{{{73}}}}") # {{73}}

m = 21

# ! , : { } ;这些标点不能出现在{} 这里面。

# print(f'{;12}') # 报错

# 所以使用lambda 表达式会出现一些问题。

# 解决方式:可将lambda嵌套在圆括号里面解决此问题。

x = 5

print(f'{(lambda x: x*2) (x)}') # 10

7.输入 input()

# 从input()输入的,默认都是字符串类型

namprint("*"*30,"捕鱼达人","*"*30)

username = input("输入参与者用户名:")

password = input("输入密码:")

print("%s请充值才能加入游戏!" % username)

coins = int(input("您充值的金额为:"))

print("%s元充值成功!当前游戏币是:%d" % (username,coins))e = input("请输入您的用户名:")

print(name)

#哈哈哈英雄联盟

print('''*********************************英雄联盟*********************************''')

role = input("输入角色:")

equipment = input("输入拥有的装备:")

upgrade_equipment = input("输入想要购买的装备:")

pay = input("输入付款金额:")

#变量的赋值替换

equipment = upgrade_equipment

print("{}拥有{}装备,购买此装备花了{}钱。".format(role,equipment,pay))

8.比较运算符

# > < >= <= == !=

n1 = int(input("请输入第一个数:"))

n2 = int(input("请输入第二个数:"))

#判断 n1 和 n2,这里result获得的值是True or False

result = n1 > n2

print('n1 > n2:', result)

m1 = 'hello'

m2 = 'hello'

## == != 不仅可以应用于数字,字符串也行

result2 = m1 == m2

print("m1==m2:",result2)

username=input('请输入用户名:')

uname = 'admin123'

result3 = username != uname

print('用户名验证结果:',result3)

# is is not

age = 20

age1 = 20

# python 自带一个内部函数 id(),可以判断变量在内存中的位置,如果两个变量是相等的,

# 那其实这两个变量就是同一个东西,他们储存在内存的同一个地方

print(id(age))

print(id(age1))

print(age is age1)

money = 2000000

salary = 600000

print(id(money))

print(id(salary))

print(money is salsry)

print(money is not salary)

# 这个现象只出现在当你把一堆代码同时提交给解释器时,你在交互界面就不一样了

# 当赋值超过【-5,256】,每次都会重新创建新的内存地址

9.逻辑运算符

# and or not 与或非

# 当运用这三个运算符的时候,若有返回值,返回值是布尔类型

10.进制转换

# bin() 把对象转换为二进制 0b——>二进制 ,浮点数不能通过bin()来进行二进制转换

a = 13

print(bin(a))# 这几把a转换为二进制数了,答案是 0b1101

#如何定义一个二进制数呢

b = 0b1011 # 数字前面加上 0b 就可以直接定义二进制数

#二进制,八进制,十六进制咋转换成十进制数呢

print(int(b)) # 直接用int()转化为整数,

#负数整数咋转换为二进制————正数取反加一

# 取反就是把二进制数里的0,1互换,

# 比如 -13,转换过程就是 13 ——> 0b1101(0000 1101) ——> 1111 0010 ——> 1111 0011

# 那这个 1111 0011 就是 -13的 二进制位,但是python给我门返回的

print(bin(-13)) ————> -0b1101

# 0o6430 八进制 ——> 0b 110 100 011 000(每一位数字分别转换为三位的二进制,拼一起)

# 0x9ab16 十六进制 0-9 a-f ——> 0b 1001 1010 1011 0110 (每一位数字分别转换为四位的二进制,拼一起)

11.位运算

位运算是个傻逼知识,我不学,也不写,活该我不会!

12.if语句

#判断用户登录

#先定义数据库里的用户名密码

uid = "admin123"

password = "123456"

#再输入用户名密码

username = input("输入用户名:")

passwd = input("输入密码:")

if username != "" and passwd != "":

if username == uid and passwd == password:

print("登陆成功!")

else:

print("用户名或密码错误!")

else:

print("用户名或密码不能为空!")

#还有个 elif:就不说了

13.while 语句

# 这里有个死循环的操作

while True:

...

#break , continue 分别是结束所有循环,结束当前循环开始下一循环

#这里有个组合

while []:

...

else:

#还有

for i in range():

...

else:

#else 语句也可以与循环语句尽心搭配,其实else语句是个相对独立的语句

#举个栗子

'''小易喜欢的单词具有以下特性:1.单词每个字母都是大写字母2.单词没有连续相等的字母例如:小易不喜欢"ABBA",因为这里有两个连续的'B'小易喜欢"A","ABA"和"ABCBA"这些单词给你一个单词,你要回答小易是否会喜欢这个单词。'''

def func():

#现有个单词

word = input("请输入一个单词:")

for i in range(len(word)):

if not word.isupper():

print("小明不喜欢。没大写~")

break

elif i<(len(word)-1) and word[i]==word[i+1]:

print("小明不喜欢。叠词~")

break

else:

print("小明喜欢。")

def main():

func()

if __name__ == "__main__":

main()

14.列表

# 列表有几个共同操作

- 成员关系运算( in,not in)

if a in list1:

- 连接操作(+)

list3 = list1 + list2

- 重复操作(*)

list2 = list1 * 3

- 切片操作([::])

#语法:列表名[开始下标:结束下标:步长],表示按指定步长获取从开始下标到结束下标之间的元素,

# 结果为一个新的列表

#注意:包头不包尾【前闭后开区间】 [开始下标,结束下标)

#步长:默认是1,正数表示从左向右取,负数表示从右向左取

list1 = [10,20,30,40,50,60]

print(list1[0:3]) #[10,20,30]

print(list1[:3]) #[10,20,30]

print(list1[:]) #[10,20,30,40,50,60] 从头取到尾

print(list1[::2]) # [10,30,50] 隔一个取一个

print(list1[3::-1]) #[40, 30, 20, 10] 从右向左取

print(list1[-1:-3:-1]) #[60, 50] 从右向左取

print(list1[2:]) #[30, 40, 50, 60] 从下标为2的元素开始取到末尾

print(list1[-3::-1])#[40, 30, 20, 10] 从右向左取到第一个元素

print(list1[-3:]) #[40,50,60] 最后三个元素

#列表长度

len(list1)

#列表内极值与求和

max(list1)

min(list1)

sum(list1)

# 凡是列表,字典,这种数据集合都面临差不多固定几个操作,就是增删改查

## 增

list.append() #将元素增至列表末尾

list.insert(index,obj) #将元素插入到指定 index位置

list.extend(list2) #列表的尾部延申,类似于 list=list+list2

##删

list.pop(index) #删除指定index的元素,如果不指定index,默认最后一个元素

list.remove(obj) #删除列表中第一个等于 obj 的元素

list.clear() #清空列表

###del 语句,这个语句厉害了,可以用在几乎所有的这种数据集合类型里

del list1 #就直接删掉这个列表

del list1[0] #指定index删除元素

del list1[0:2] #删除连续的元素,这个也可以使用切片操作

del list1[0:6:2]

##改

list1[indext]=obj #指定元素index改

list1.reverse() #反序

##list1.sort()

##list.sort(key=None,reverse=None) 列表方法,实现列表就地排序,不产生新列表

###参数:key参数指明用哪个函数进行排序(),默认值是None,用<进行比较 可选参数

### reserse:布尔值,默认值是None,也就是假,从小到大排序,如果设置为True,则从大到小排序,可选参数

l1 = [90,30,70,20,10,60]

print(l1) # [90, 30, 70, 20, 10, 60]

l1.sort()

print(l1) # [10, 20, 30, 60, 70, 90]

l1.sort(reverse=Trur) # ][90,70,60,30,20,10]

## list.sort()方法没有返回值,它直接就改变原来的列表,要想新建一个排序好的,新的list,可以用 sorted()函数,

list5 = sorted(list1)

##查

##list.index(x,start,end) 在[start end)范围内查找第一个等于x的元素的下标

#参数说明: x 要查找的元素; start,开始下标;end 结束下标,不包含结束下标

#返回值:如果有值等于x的元素,返回其下标,如果不存在值等于x的元素,会引发ValueError

print(l1.index(10)) #1

print(l1.index(30,2,5)) #4

##list.count(x) 查找列表中x出现的次数,如果没有x,返回0

print(l1.count(30)) #2

print(l1.count(99)) #0 不存在99

##遍历

for i in list1:

...

###那如果是二维数组呢,咋整

l = [(1,2),(3,4),(5,6),(7,8),(9,10)]

for i in l:

for j in i:

print(j)

###升级一下,打印个小时候的九九乘法表

## #这里,里边那个循环,为啥是range(1,i+1)呢,不加1会怎么样呢,不+1,就是range(1,i),当i=1的时候,就变成的range(1,1),这个区间左闭右开,就是[1,1),所以就不好含1了,就缺个循环了

for i in range(1,10):

for j in range(1,i+1):

print("{}*{}={}".format(j,i,i*j),end=" ")

if i == j:

print()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值