玩蛇(Python)笔记之基础Part2

玩蛇(Python)笔记之基础Part2

一.列表

1.列表 别的语言叫数组 python牛逼非要取个不一样的名字

1 age = 23
2 name = ["biubiubiu", "jiujiujiu", 22, age]
3 # namecopy = name
4 # namecopy.pop()
5 print(name)
6 # print(namecopy)

List

  2.列表取值 正常index 从零开始,,取倒数加负号 倒数第一就是[-1]

  3.列表切片 [0:2]取得是第一个和第二个,,也就是头取尾不取 取值永远按照列表顺序例如取倒数[-5:-1],,步长[::步长]默认步长是1!

  4.列表基本操作 追加list.append("") 插入到某个位置(如果指定倒数位置 将插入位置前面) list.insert(2,"") 删除list.remove("") del li[2]下标删除 切片删除(函数内无效)li=li[:] 弹出li.pop(index),,默认弹出最后一个

1 name = ["biubiubiu", "jiujiujiu", 22, age]
2 name.append("hahahaa")
3 name.insert(2, "uuuuuuu")
4 name.remove("biubiubiu")
5 del name[0:2]
6 print(name)

List base

  5.列表判断 in 数量li.count() 找索引li.index()只会返回找到的第一个元素位置 列表长度,,len(li)

1 if "hahahaa" in name:
2     num_of_sth = name.count("hahahaa")
3     posistion = name.index("hahahaa")
4     print("[%s] hahahaa in name.posistion is [%s]" % (num_of_sth, posistion))

List base

6.列表高端操作 拓展进一个新的列表 li.extend(li2) 反转列表li.reverse() 排序li.sort(),,python3数字和字符串排序会报错,,python2会按asc2码的顺序来排 拷贝li.copy() 枚举enumerate()

1 name2 = ["babababa", "hehehehe", "niuniuniu"]
2 name.extend(name2)
3 name.reverse()
4 # name.sort()

List base

7.列表注意!! 列表直接赋值是整个列表指引,,li=li2,,改变一个都会变 所以要用copy 但是copy为浅拷贝!!,,意思是被拷贝的列表里有嵌套列表,用copy后嵌套的列表依然为指引 如果要深拷贝,,请用copy库的deepcopy

1 name.append([1, 2, 3, 4, 5, 6])
2 nameShallowcopy = name.copy()
3 nameTruecopy = copy.deepcopy(name)

List copy

二.元组

1.元组truple 只读列表 元组不可更改 truple.count() truple.index()

1 r = (1, 2, 3, 4, 5)

truple

三.字符串

1.字符串操作 string.strip()默认脱空格换行tab,也可以指定 string.split(",")按指定符号拆分成列表,,string.join(列表)合并列表每个元素加入string ‘‘in string判断有没有空格

1 username = ‘year    ‘
2 username.strip()
3 usernames = ‘uar,asdf,asdf,erg,erh‘
4 username = usernames.split(‘,‘)
5 usernames = ‘|‘.join(username)
6 print(‘‘ in usernames)

String

2.字符串操作2 string.capitalize()首字母大写 string.format()格式化字符串,,推荐使用 字符串切片同列表 指定长度填充居中string.center(40,‘-‘) 查找指定字符串string.find(‘‘)返回索引 string.isdigit()等等判断是否为某个类型 string.endswith()startswith() string.upper().lower()

 1 usernames.capitalize()
 2 msgTamplte1 = "Hello, {name}, you are {age} years old!"
 3 msgTamplte2 = "Hello, {0}, you are {1} years old!"
 4 msg1 = msgTamplte1.format(name=‘year‘, age=23)
 5 msg2 = msgTamplte2.format(‘year‘, 23)
 6
 7 usernames.center(50, ‘-‘)
 8
 9 usernames.find(‘uar‘)
10 print(usernames.isdigit())
11 usernames.endswith(‘ddd‘)
12 usernames.startswith(‘asdf‘)
13 usernames.upper().lower()

String

3.关于字符串格式化后面会有专门的笔记......

四.数据操作

1.加减乘除不说 %号为取余数,,常用来判断奇偶数 **幂运算 //取整除,,返回商的整数部分

2.运算符 == != <> < > >= <=没什么好说的

3.赋值运算 = += -= *= /= %= **= //= 同样没什么好说的

4.逻辑运算 and or not 更没有什么好说的了

5.成员运算 in ,, not in 同样没什么好说的

6.身份运算 is ,, is not 判断两个标识符是不是引用自一个对象

7.位运算 & | ^异或 ~取反 << >> 二进制知识 计算机中能表示的最小单位和能存储的最小单位就是一个二进制位(bit) 8bit=byte(字节) 1024byte=1kbyte等等

 1 print(8 % 2)
 2 print(10 // 3)
 3 a = [1, 2, 3, 4]
 4 print(type(a) is list)
 5 a = 60  # 00111100
 6 b = 13  # 00001101
 7 c = 0
 8
 9 c = a & b  # 12=00001100
10 c = a | b  # 61=00111101
11 c = a ^ b  # 49=00110001 相同为0不同为1
12 c = ~a  # 195=11000011 按位取反 结果为195-256
13 print(64 >> 1)  # 右移1位就是除2 右移2位就是除2再除2
14 print(64 << 1)  # 左移1位就是乘以2 位移动比直接用乘除运算快

+-*/

五.循环

1.while循环 while True: 少写死循环

 1 count = 0
 2 while True:
 3     if count > 50 and count < 60:
 4         print("hahahahah")
 5         count += 1
 6         continue
 7     count += 1
 8     if count == 100:
 9         print("100")
10         break
11 oke = 0

while

六.字典

1.字典 {}键值对 天然去重 字典是无序的

2.字典操作 添加,,直接写key=value 删除,,del .pop() 拷贝,,参考列表拷贝 取值一般用get()防报错 更新字典dic1.update(dic2),,存在相应的key就更新相应的值,不存在就会添加 转换为列表(键值对转换为元组,,元组组成列表)dic.items()一般不用 取所有value和key,,dic.values().keys()

3.字典操作2 判断字典有没有key,,用key in dic 加入空值键dic.setdefault(key,value),,如果存在该键就返回值否则就生成空值键,,也可以指定value 加入多个相同value的key,,dic.fromkeys([1,2,3,4,5],‘ddddd‘)但是这是类方法和对象本身没有关系!!

4.字典操作3 随机删除dic.popitem()不要用 字典循环1 for key,value in dic.items()不好,,有一个dic到list的转换过程 循环2 for key in dic:

 1 id_db[124124124] = ‘asdfasdf‘
 2 del id_db[124124124]
 3 id_db[123123123].pop(‘jjj‘)
 4 id1 = id_db.get(123123123)
 5 id_db2 = {
 6     123123123: {
 7         ‘asdf‘: ‘biubiubiu‘
 8     },
 9     ‘hahaha‘: ‘enenene‘
10 }
11 id_db.update(id_db2)
12 id_db.items()
13 id_db.values()
14 id_db.keys()
15
16 print(123123123 in id_db)
17 id_db.setdefault(125125125, ‘hahaha‘)
18 id_db.fromkeys([1, 2, 3, 4, 5, 6], ‘sssss‘)
19
20 id_db.popitem()
21 for key in id_db:
22     print(id_db[key])

dic

七.举个栗子 购物车枚举

 1 # -*- coding:utf-8 -*-
 2 # Author:YEAR
 3
 4 salary = input("Input your salary:")
 5
 6 if salary.isdigit():
 7     salary = int(salary)
 8 else:
 9     exit("Invaild data type...")
10
11 welcome_msg = ‘Welcome to Alex Shopping mall‘.center(50, ‘-‘)
12 product_list = [
13     (‘iphone‘, 5999),
14     (‘chuizi‘, 2999),
15     (‘mac‘, 8000)
16 ]
17 print(welcome_msg)
18
19 exit_flag = False
20 shop_car = []
21 while not exit_flag:
22     for item in (product_list):
23         index = item[0]
24         p_name = item[1][0]
25         p_price = item[1][1]
26         print(p_name, p_price)
27
28     user_choic = input("[q=quit,c=check]What do you want to buy?:")
29     if user_choic.isdigit():  # 肯定是选商品
30         user_choic = int(user_choic)
31         if user_choic < len(product_list):
32             p_item = product_list[user_choic]
33             if p_item[1] <= salary:  # 买得起
34                 shop_car.append(p_item)
35                 salary -= p_item[1]
36                 print("Added [%s] into shop car, you current balance is [%s]" % (p_item, salary))
37             else:
38                 print("Your balance is [%s],cannot afford this ..." % salary)
39         else:
40             pass
41     else:
42         if user_choic == ‘q‘ or user_choic == ‘quit‘:
43             print("purchased product as below".center(40, ‘*‘))
44             for item in shop_car:
45                 print(item)
46             print("Goodbye!".center(40, ‘*‘))
47             print("Your balance is [%s]" % salary)
48             exit_flag = True
49         elif user_choic == ‘c‘ or user_choic == ‘check‘:
50             print("purchased product as below".center(40, ‘*‘))
51             for item in shop_car:
52                 print(item)
53             #命令行上色 \033[31;1m[%s]\033[0m     32绿色 31红色 42背景绿色 41背景红色
54             print("Goodbye!".center(40, ‘*‘))

shop

时间: 2024-12-23 19:51:38

玩蛇(Python)笔记之基础Part2的相关文章

玩蛇(Python)笔记之基础Part3

玩蛇(Python)笔记之基础Part1 一.集合 1.set 无序,不重复序列 {}创建,直接写元素 2.set功能 __init__()构造方法,,使用强制转换就会调用此方法 1 set1 = {'year', 'jiujiujiu'} 2 print(type(set1)) 3 # 创建集合 4 s = set() # 创建空集合 5 li = [11, 22, 11, 22] 6 s = set(li) set 3.集合的基本操作 1 # 操作集合 2 s1 = set() 3 s1.a

Python笔记一 基础概念与基础认识

简介 python的创始人为吉多·范罗苏姆. 在10月份TIOBE排行榜上,python为第五,占有率为3.775%. python是一门动态解释型的强类型定义语言. 执行.py的时候是由python解释器,逐行编译→解释,在运行. PyCodeObject 是编译结果,运行完成后,保存到pyc中,以便下次直接运行pyc文件 动态类型 是指运行期间才去做数据类型检查的语言. 强类型定义语言 是指一旦一个变量被指定了某个数据类型,不经过强制转换,永远都是这个类型. 优点: 优雅.明确.简单. 开发

inking Python 笔记(1) : 基础

1. type()可以查看变量的类型. >>> type(12.1) <class 'float'> >>> type('hello') <class 'str'> >>> type(2) <class 'int'> >>> type('2') <class 'str'> 2. Python的变量名支持数字.字母及下划线,但不能以数字开头. 3. 表达式及声明. >>>

python笔记二 基础

10/24 对于Python,一切事物都是对象,对象基于类创建,对象所有的功能都是去类里面找的 变量名 = 对象 (值)                              重复的功能 创建一个类,然后对象去引用   整数 age = 18 print(type(age)) <class 'int'> 如果是其他的类型,会在下面显示类地址. age.__abs__() all_item = 95 pager = 10 result = all_item.__divmod__(10) pr

玩蛇记之用python实现易宝快速支付接口

玩蛇记之用python实现易宝快速支付接口 现在很多这种快速支付的通道,易宝支持的通道算是很全面的,正好最近需要集成易宝的支付通道到平台中,所以写一贴来记录一下,顺便鄙视一下国内的支付平台,api的支持做得很是差劲,易宝的例子代码居然是错的,这么囧的事情都能出现,可见国内的竞争还是不够激烈啊. 进入主题,今天的任务是要打通支付和支付通知接口,根据一般性规则,通过http协议的支付接口的一般设计都是,通过N个field或者查询参数传递数据,其中一个是验证串,防止篡改数据,每个申请了支付接口的用户都

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

智普教育Python视频教程之入门基础篇,python笔记

智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostname="www.google.com" 结果运行后总是告诉我NameError: name 'socket' is not defined 哪位帮我分析一下,怎么改才对 没用过socket,不过你试着在第一行加入 import socket C:\>notepad somefile.

嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&amp;seid=10211084839195730432#page=25 中的38-41讲

# -*- coding: utf-8 -*-#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的38-41讲# 文件# 文件是存储在外部介质上的数据或信息的集合# 文件是有序的数据序列# 常用的编码# ASCII码是标准化字符集# 7个二进制位编码# 表示128个字符 # ord() 将字符转化为ASCII码, chr() 将AS

嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&amp;seid=15873837810484552531 中的15-22讲

#coding=gbk#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&seid=15873837810484552531 中的15-22讲#数字类型的关系#三种类型存在一种逐渐扩展的关系:#整数 ->浮点数 ->复数(整数是浮点数的特殊,浮点数是复数的特殊)#不同数字类型之间可以进行混合运算,运算后生成的结果为最宽类型.如整数+浮点数=浮点数#三种类型可以相互转换#函数:int(), fl