前言

blog花了一上午写的,结果笔记本关机了,没有保存,找不到了,找不到了啊,所以说,你看的每一篇blog可能都是我写了2次以上的…….哎!!

代码改变世界,继续.........

Python基础

一、Python的数据类型

1、int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647,而.在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

2、long(长整型)

为什么会有这个概念呢?

因为在Python2.2起,如果放置在内存里的数特别大发生溢出,Python就会自动将整型数据转换为长整型,但是现在,在Python3里就不存在长整型这么一说了,同意都是整型。

3、float(浮点型)

简单理解就是带有小数的数字

4、complex(复数)

复数是由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y呢是复数的虚数部分,这里的x和y都是实数。

5、布尔值(0或1)

就是真和假。

6、查看数据类型(type)

 >>> type()
<class 'int'>
>>> type(1.2)
<class 'float'>
>>> type(jixuege)
Traceback (most recent call last):
File "<stdin>", line , in <module>
NameError: name 'jixuege' is not defined 上面报错原因就是没有用双引号引起来,他就不是字符串,而是认为是一个变量。
>>> type("jixuege")
<class 'str'>

二、for和while循环

这里呢就需要涉及到break和continue的区别了。

如何理解呢?

break: 只能跳出当前循环,当前这一套循环就结束了。

continue: 跳出当次循环,然后呢还会去继续下一次别的循环。

举个栗子:

 #!/usr/bin/env python
# -*- coding: utf- -*-
#Author: Leon xie for n in range():
print(n)
for j in range():
if j <:
#如果j小于2就跳出当次循环,继续一下次循环
continue
print(n,j)
打印结果如下:

说明:

在第二次的if判断中,我执行条件,如果j小于2就跳出当次循环,继续一下次循环

下面我们就看看break的使用

同样的代码,咋们接着看

#!/usr/bin/env python
# -*- coding: utf- -*-
#Author: Leon xie for n in range():
print(n)
break
for j in range():
if j <:
#如果j小于2就跳出当次循环,继续一下次循环
continue
print(n,j)
打印结果如下:

0

小结:
个人来说明一下,二者的区别,continue呢用于我有很多次循环,然后呢,我不希望哪次循环执行下面的动作,就可以了使用continue ,而break呢就是我这次循环了以后我想跳出去不在循环,或者呢就是我写了一段代码,我想跳出去看看代码是否能执行,就可以用break呢。
 

三、Python的数据类型

 
1、整型int
可以直接理解为整数
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647,在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
 
2、浮点型float
可以直接理解为带小数的数字。
 
3、复数complex

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

4、布尔值(0或1)

表示真或者假

5、查看数据类型

使用type即可。

>>> type("xiedi")
<class 'str'>
>>> type("")
<class 'str'>
>>> type(2.2)
<class 'float'>
>>> type()
<class 'int'>
>>>

这里有个地方需要注意,就是数字不需要加引号,如果加了就是字符串。

四、Python字符串基本操作

1、判断是不是合法的标识符isidentifier

name="ABC"
print(name.isidentifier())
打印结果
True
2、首字母大写capitalize
name= 'abc'
print(name.capitalize())
打印结果
Abc

3、计数count
name= 'abc'
print(name.count("a"))
打印结果

4、位于中心,用-来补充center
name= 'abc'
print(name.center(,"-"))
打印结果
-----------------------abc------------------------

5、判断是否以c结尾endswith
name= 'abc'
print(name.endswith("c"))
打印结果
True

6、把回车换成空格expandtabs
name = "a\tbc"
print(name.expandtabs(tabsize=))
打印结果
a bc

7、查看某字符下标find
name= 'abc'
print(name.find('c'))
打印结果

8、将字符小写lower
print("XIEDI".lower())
打印结果
xiedi

9、将字符大写upper
print("xiedi".upper())
XIEDI

五、Python列表基本操作

记住一句话,叫做顾首不顾尾

首先我们来定义一个列表

name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]

接下来,我们就对这个列表来进行一系列的操作

1、切片

取值,取第一个和第二个

print(name[],name[])
打印结果
jixuege dajiba

说明:

上面的0和1指的是小标,从左到右顺序就是从0开始一直到4

打印一个区间

name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]

print(name[:])
打印结果
['jixuege', 'dajiba']

打印最后一个
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
print(name[-])
打印结果
youtianai

2、追加
比如说我想追加一个人进去
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
name.append("xiha")
print(name)
打印结果 ['jixuege', 'xitong', 'dajiba', 'youhua', 'boduoye', 'cangjinkong', 'youtianai', 'xiha']

这个会追加到末尾

还有一种就是插入insert

name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]

name.insert(,"youhua")
print(name)
打印结果
['jixuege', 'dajiba', 'youhua', 'boduoye', 'cangjinkong', 'youtianai']
 

3、修改

直接修改即可

name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
name[]="wuming"
print(name)
打印结果
['jixuege', 'dajiba', 'wuming', 'cangjinkong', 'youtianai']

4、删除

直接清空

name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
name.clear()
print(name)
打印结果
[]
 
删除指定元素
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
name.remove("jixuege")
print(name)
打印结果 ['dajiba', 'boduoye', 'cangjinkong', 'youtianai']

删除指定下标

name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
del name[]
print(name)
打印结果
['jixuege', 'dajiba', 'cangjinkong', 'youtianai']

不指定下标删除最后一个
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
name.pop()
print(name)
打印结果
['jixuege', 'dajiba', 'boduoye', 'cangjinkong']

指定下标
name = ["jixuege","dajiba","boduoye","cangjinkong","youtianai"]
name.pop()
print(name)
打印结果
['jixuege', 'boduoye', 'cangjinkong', 'youtianai']

六、蛋疼的购物车程序练习

要求:

1、用户输入工资,打印出商品的列表

2、用户根据编号来进行购买商品

3、用户选择商品之后,先检测额度是否够用,直接扣款和温馨提示余额不足

4、可以随时退出,退出并打印出已购商品列表和余额。

 #!/usr/bin/env python
# -*- coding: utf- -*-
#Author: Leon xie product_list = [
["Iphone",],
["MAC PRO",],
["Bike",],
["Coffee",],
] shopping_list = [] salary = input("请输入你的工资:")
#判断是否为数字
if salary.isdigit():
salary = int(salary)
while True:
for index,item in enumerate(product_list):
#打出菜单
print(index,item[],item[]) choice = input("请选择要购买的商品编号[quit]>>:")
if choice.isdigit():
choice = int(choice)
if choice >= and choice < len(product_list):
#判断钱是否够用
p = product_list[choice] if p[] <= salary:
shopping_list.append(p)
salary -= p[]
print("Added \033[32;1m[%s]\033[0m into your shopping cart,and your current balance is \033[1;31;40m%s\033[0m"%(p,salary))
else:
print("钱不够,你只有 \033[5;31;42m[%s] \033[0m "% salary)
else:
print("没有此商品...") elif choice == "quit":
print("已购买的商品".center(,"-"))
for i in shopping_list:
print(i)
print("Your left balance is ",salary)
exit()
else:
print("未识别,请输入正确的指令!!")

购物车效果如下所示:

一个初学者的辛酸路程-了解Python-2的更多相关文章

  1. 一个初学者的辛酸路程-python操作SQLAlchemy-13

    前言 其实一开始写blog,我是拒绝的,但是,没办法,没有任何理由抗拒.今天呢,要说的就是如何使用Python来操作数据库. SQLAlchemy SQLAlchemy是Python编程语言下的一款O ...

  2. 一个初学者的辛酸路程-Python基础-3

    前言 不要整天沉迷于学习-. 字典 一.我想跟你聊聊字典 1.为何要有字典? 大家有没有想过为什么要有字典?有列表不就可以了吗? 也许大家会这么认为,我给大家举个例子,大家就明白了. 比如说,我通讯录 ...

  3. 一个初学者的辛酸路程-FTP-9

    前言 今天,我要描述一个FTP的故事 主要内容 嗯,今天主要以阶梯性的形式来做一个FTP项目. 第一步: 我要实现这么一个功能,一个FTP客户端,1个FTP服务端,2端建立连接以后可以进行通讯. 服务 ...

  4. 一个初学者的辛酸路程-socket编程-8

    前言: 你会发现会网络是多么幸福的事情 主要内容: socket 概念: socket本质上就是2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递.我们知道网络通信都是基于 ...

  5. 一个初学者的辛酸路程-初识Python-1

    前言 很喜欢的一句话,与诸位共勉. 人的一切痛苦,本质上都是对自己无能的愤怒----王小波. 初识Python 一.它的爸爸是谁 首先,我们需要认识下面这位人物. 他是Python的创始人,吉多范罗苏 ...

  6. 一个初学者的辛酸路程-依旧Django

    回顾: 1.Django的请求声明周期?   请求过来,先到URL,URL这里写了一大堆路由关系映射,如果匹配成功,执行对应的函数,或者执行类里面对应的方法,FBV和CBV,本质上返回的内容都是字符串 ...

  7. 一个初学者的辛酸路程-继续Django

    问题1:HTTP请求过来会先到Django的那个地方? 先到urls.py  ,里面写的是对应关系,1个URL对应1个函数名. 如果发URL请求过来,到达这里,然后帮你去执行指定的函数,函数要做哪些事 ...

  8. 一个初学者的辛酸路程-初识Django

    前言: 主要是关于JavaScript的高级部分以及Django 主要内容: 一.jQuery 事件绑定: DOM事件绑定: -直接在标签上绑定 第一种: $('.title').click(func ...

  9. 一个初学者的辛酸路程-jQuery

    前言: 主要概要: 1.HTML+CSS补充 2.DOM事件 3.jQuery示例 内容概要: 1.布局 代码如下 <!DOCTYPE html> <html lang=" ...

随机推荐

  1. 深入学习sea.js

    入门学习了文档之后,在深入学习里面的一些有趣的知识点 =================================== 一.配置 seajs.config({ alias:( a3:'./js/ ...

  2. 【bootstrap】时间选择器datetimepicker和daterangepicker

    在bootstrap中的时间选择器有两种:dateTimePicker和dateRangePicker 1.dateTimePicker好像是官方嫡插件:   需要的文件: <link rel= ...

  3. 学习笔记:shell 中 [-eq] [-ne] [-gt] [-lt] [ge] [le]

    -eq           //等于 -ne           //不等于 -gt            //大于 (greater ) -lt            //小于  (less) -g ...

  4. kubernetes port nodePort targetPort 理解

    port The port that the service is exposed on the service's cluster ip (virsual ip). Port is the serv ...

  5. web.xml Attribute "xmlns" was already specified for element "web-app"

    报错信息:Attribute "xmlns" was already specified for element "web-app" 由于项目的重命名,出现了x ...

  6. Specified key was too long; max key length is 767 b

    alter table - engine=innodb,row_format=dynamic; Specified key was too long; max key length is 767 b

  7. ionic中$ionicPopover和$ionicModal

    Popover可点多个按钮弹出同一个浮动框但内容不一样.那想要在同一页面弹出不同的浮动框怎么办呢? 这事就用到了$ionicModal,他和$ionicPopover一样的用法. 请看图: html: ...

  8. laravel 日志

    laravel学院的 http://laravelacademy.org/post/195.html 他人博客的 http://www.cnblogs.com/yjf512/p/4173261.htm ...

  9. 用perl发送数据到钓鱼站

    一个皮皮果的游戏很火 估计很多人想黑 偶然发现一个钓鱼站: http://ppgpergame.com/ 钓用户名与密码 抓包后发现数据会发送到: http://ppgpergame.com/db.a ...

  10. 编写第一个ROS(创建工作空间workspace和功能包package)

    刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配置好ROS. 1.创建工作空间(workspace) 我们所创建功能包package,应该全部放到一个 ...