本次学习内容

  1.for循环

  2.continue and break

  3.while循环

  4.运算符

  5.数据类型

    数字

    字符串

    列表

1.for循环

猜年龄的游戏完善下,只有三次机会

for i in range(3)#循环3次

for...else#如果for循环正常结束,就执行else下面的语句

exit()#退出程序

hongpeng_age = 21
for i in range(3):
age = int(input("please guess age:"))#int 输入字符串转换成整型
if age == hongpeng_age:
print('get it')
break
elif age < hongpeng_age:
print ('try bigger')
else:
print('try smaller')
else:
exit("too much times")
print('welcome...')

2.continue and break

continue:结束本次循环,继续下一次循环

break:结束本层循环

continue

for i in range(10):
for j in range(10):
if j > 5:
continue
else:
print (i,j)

break

for i in range(10):
for j in range(10):
if j > 5:
break
else:
print (i,j)

3.while循环

while True死循环,一直执行到天荒地老
count = 0
while True:
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count +=1

上面的3次猜年龄的游戏也能用while实现

age = 21
count = 0
while count < 3:
guess_age = input("age:")
#判断输入是否是数字
if guess_age.isdigit():
guess_age = int(guess_age)
else:
continue
if guess_age == age:
print('get it')
break
elif guess_age > age:
print("try small")
else:
print("try bigger")
count += 1

4.运算符

1、算数运算:

  • +   加
  • -         减
  • *   乘
  • /    除
  • %   取余
  • **   幂
  • //    取整除

2、比较运算:

  • ==  等于
  • !=  不等于
  • >    大于
  • <    小于
  • >=  大于等于
  • <=  小于等于

3、赋值运算:

  • =  赋值
  • +=  a+=b---------a=a+b
  • -=   a-=b----------a=a-b
  • *=  a*=b----------a=a*b
  • /=   a/=b----------a=a/b
  • %=   a%=b---------a=a%b
  • **=     a**=b--------a=a**b
  • //=  a//=b---------a=a//b

4、位运算:

  • &    按位与
  • |     按位或
  • ^    按位异或,二进制相依时结果为1
  • ~    按位取反
  • <<  左移
  • >>  右移

5、逻辑运算:

6、成员运算:

  • in
  • not in

7.身份运算

  • is    判断两个标识符是不是引用同一对象
  • is not

>>> age = 1111111111111
>>> age1 = age
>>> age1 is age
True

#类似软链接

>>> age = 111111111111
>>> age1 = 111111111111
>>> age1 is age
False
#重新在内存中创建

 

5.数据类型

数字

  • 整型int
  • 长整型long(python3中没有长整型,都是整型)
  • 布尔bool(True 和False1和0)
  • 浮点型float
  • 复数complex

字符串

定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,' '或'' ''或''' '''中间包含的内容称之为字符串
msg = 'hello world'
print(msg[4])#找字符串中索引是4
print(msg.capitalize())#字符串首字母大写
print(msg.center(20,'*'))#字符串居中显示,*补全
print(msg.count('d',0,))#统计字符串中d出现的次数
print(msg.endswith('l'))#是否以l结尾
print(msg.find('p'))#字符串中找p的位置
print(msg.index('l'))#字符串中找l的索引,只找第一个
#find和index的区别,find如果没有找到,输出-1,index没有找到,报错
#format函数,功能和%s一样
print('{0} {1} {0}'.format('name','age'))
print('{name}'.format(name = 'alex'))
print('{} {}'.format('name','age','hobby')) msg1 = ' while '
msg2 = ''
print(msg1.isalnum())#至少一个字符,且都是字母或数字才返回True
print(msg1.isalpha())#至少一个字符,且都是字母才返回True
print(msg1.isdecimal())#10进制字符
print(msg1.isdigit())#整型数字
print(msg1.isidentifier())#判断单词中是否含关键字
print(msg1.islower())#全为小写
print(msg1.isupper())#全为大写
print(msg1.isspace())#全为空格
print(msg1.istitle())
print(msg1.ljust(20,'*'))#左对齐
print(msg1.rjust())#右对齐
print(msg1.strip())#移除空白 #字符串中字符替换
msg = 'my name is abcd'
table = str.maketrans('a','l')
print(msg.translate(table)) msg1 = 'abc'
print(msg1.zfill(20))#右对齐
print(msg1.rjust(20,''))
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无 isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节) isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

isdigit、isnumeric、isdecimal的区别

列表

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
特性:
1.可存放多个值
2.可修改指定索引位置对应的值,可变
3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
name = ['tom','jack','david','alex','alex','domin']
#增
name.append('alice')
print(name)
name.insert(1,'stevn')
print(name)
#删除
name.remove('tom')
print(name)
del name[0]
print(name)
name.pop(1)#不声明默认删除最后一个元素
print(name)
#改
name[2] = 'tomas'
print(name)
#查
print(name[-1])
print(name[0::2])#步长为2
print(name[-3:])
print(name.index('jack'))#取元素下标
name2 = ['dog','cat']
name.extend(name2)#把name2列表加入name中
name.sort()
print(name)#ascii排序,python3中str和int不能排序,2中可以
n3 = name.copy()
n4 = name
print(n3,id(name),id(n3))
print(n4,id(name),id(n4))
name.pop()
print(n3,id(name),id(n3))
print(n4,id(name),id(n4))
#copy是在内存中重新存放一份数据,python2中有深浅copy一说,python3中都是深copy
#n4就是类似linux中的软连接,和name在内存中存放数据的地址一样
小练习1:购物车之初体验,先实现个小目标
  • 展示商品列表和价格
  • 用户输入薪水
  • 用户购物结束打印购买列表、余额

列表

enumerate()

if...else

while True

buy_list = []
dict_list = [
["iphone",5888],
["mac",12000],
["cloth",300]
]
print("welcome".center(20,'*'))
for index,item in enumerate(dict_list):
print(index,item[0],item[1])
while True:
salary = input("salary:")
if salary.isdigit():
salary = int(salary)
break
else:
continue
while True:
choose = input("pleae choose:")
if choose.isdigit():
choose = int(choose) if choose >= 0 and choose < len(dict_list):
p = dict_list[choose]
if salary < p[1]:
print("your balance is not enough!")
else:
buy_list.append(p)
salary -= p[1]
print('you have buy \033[32;1m[%s]\033[0m,your balance is \033[32;1m[%s]\033[0m'%(p[0],salary))
elif choose == 'quit':
print('购买商品如下:'.center(50,'*'))
for i in buy_list:
print(i[0],i[1])
print('your balance is %s'%salary)
exit()
else:
continue

小练习2

>>> str='四'
>>> print(str.isnumeric())
True
>>> print('www.example.com'.lstrip('cmowz.'))
example.com
>>> values = [1,2,3,4,5,6]
>>> print(values[::2])
[1, 3, 5]
>>> print(1 and 2)
2

小练习3

三级菜单(每一级都能退出和返回上一级)

无敌版

menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
current_level = menu#记录当前层
last_level = []#记录当前层的前几层
while True:
for i in current_level:#遍历字典,打印当前层key
print(i)
choice = input('>>').strip()
if len(choice) == 0:continue
if choice == 'q':exit()
if choice == 'b':
if len(last_level) == 0:break#判断是否back到了首层
current_level = last_level[-1]#如果输入b,当前层就改为上层
last_level.pop()#并删除列表中最后一个值,也就是当前层的上层
if choice not in current_level:continue#这行一定要写在if choice == 'b':的下面,否则输入b会一直continue
last_level.append(current_level)#当前层改变前记录到列表中,back时能找到上一层
current_level = current_level[choice]#根据用户输入改变当前层

Day2-python基础2的更多相关文章

  1. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  2. Python之路,Day2 - Python基础2

    def decode(self, encoding=None, errors=None): """ 解码 """ ""& ...

  3. Day2 - Python基础2习题集

    1.购物车程序 product_list = [ (), (), (), (), (), (), ] shooping_list = [] salary = input("Input you ...

  4. Day2 python基础学习

    http://www.pythondoc.com/ Python中文学习大本营 本节内容: 一.字符串操作 二.列表操作 三.元组操作 四.字典操作 五.集合操作 六.字符编码操作 一.字符串操作 1 ...

  5. Day2 Python基础之基本操作(一)

    1.常用命令 调用cmd窗口 Win+R cmd命令窗口清屏 cls cmd命令窗口在运行python时清屏 import os i=os.system('cls') cmd命令窗口在运行python ...

  6. Day2 Python基础学习——字符串、列表、元组、字典、集合

    Python中文学习大本营:http://www.pythondoc.com/ 一.字符串操作 一.用途:名字,性格,地址 name = 'wzs' #name = str('wzs')print(i ...

  7. Python day2 ---python基础2

    本节内容 列表. 元组操作 购物车程序 字符串操作 字典操作 3级菜单 作业(购物车优化) 1. 列表操作 1.定义列表names = ['Alex',"Tenglan",'Eri ...

  8. Python之路,Day2 - Python基础,列表,循环

    1.列表练习name0 = 'wuchao'name1 = 'jinxin'name2 = 'xiaohu'name3 = 'sanpang'name4 = 'ligang' names = &quo ...

  9. Day2 - Python基础2 列表、字符串、字典、集合、文件、字符编码

    本节内容 列表.元组操作 数字操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 ...

  10. Python之路,Day2 - Python基础(转载Alex)

    Day2-转自金角大王 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存 ...

随机推荐

  1. [转]浅谈CSRF攻击方式

    在CSDN中看到对CSRF攻击的原理及防护文章,讲解浅显易懂,特转之: 来源:http://blog.csdn.net/fationyyk/article/details/50833620 一.CSR ...

  2. 为什么忘记commit也会造成select查询的性能问题

    今天遇到一个很有意思的问题,一个开发人员反馈在测试服务器ORACLE数据库执行的一条简单SQL语句非常缓慢,他写的一个SQL没有返回任何数据,但是耗费了几分钟的时间.让我检查分析一下原因,分析解决过后 ...

  3. winform窗体(五)——布局方式

    一.默认布局 ★可以加panel,也可以不加: ★通过鼠标拖动控件的方式,根据自己的想法布局.拖动控件的过程中,会有对齐的线,方便操作: ★也可选中要布局的控件,在工具栏中有对齐工具可供选择,也有调整 ...

  4. Oracle转移数据表空间存储位置

    问题描述:Oracle表空间创建到了C盘,发现C盘的空间不够,现在将表空间的文件转移到D盘下. 操作方法: 1. 先登录sqlplus,登录用户.在cmd中输入:sqlplus /nologSQL&g ...

  5. spring 4.x下让http请求返回json串

    当前很多应用已经开始将响应返回为json串,所以基于springframework框架开发的服务端程序,让响应返回json字符串成为了一种常用手段. 这里介绍一下如何在spring-MVC框架下方便快 ...

  6. Linux 多线程可重入函数

    Reentrant和Thread-safe 在单线程程序中,整个程序都是顺序执行的,一个函数在同一时刻只能被一个函数调用,但在多线程中,由于并发性,一个函数可能同时被多个函数调用,此时这个函数就成了临 ...

  7. linux 环境下安装mysql5.6

    在网上找了很多博客 看着头晕眼花 各个步骤 最终功夫不负有心人 终于安装好了 特此整理分享一下 1> #yum remove mysql mysql-*    //卸载原先版本的mysql 2& ...

  8. 自定义样式RatingBar的使用

    1.设置布局文件,自定义ratingbar样式 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/an ...

  9. Android之android:launchMode

    (本文转自:http://www.eoeandroid.com/blog-531377-3446.html) (详细查看:http://blog.csdn.net/liuhe688/article/d ...

  10. (转)CNBLOG离线Blog发布方法

    原文章路径:http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html (新添了插件路径) 去年就知道有这个功能,不过没去深究总结 ...