#-------------list循环------------------
#循环时不要删除list内容的元素。不然结果是不对的。删除时下标错位导致此问题。
#如果非要删除就只能设定2个list这样 读一个list,删一个list这样就不会错位。
import copy
L=[1,1,1,2,3,4,5,6,7,8]
L2=[1,1,1,2,3,4,5,6,7,8]
#L2=copy.deepcopy(L)#深拷贝,这种方式能解决删除错位的问题,会重新弄一块内存地址,查看内存地址方式print(id(list))
#L2=L#浅拷贝,这种方式不能解决删除错位的问题,因内存地址是相同的
for i in L2:
if i%2!=0:#%是取余数的意思不能0的
L.remove(i)
print(L)
#----------------------------真、假值-----------------------------------
#----------------非空即真---------------------------------------------
#非空即真,用在字符串、字典、list、元组、变量=None,都可以这么判断
name=input('请输入名字:').strip()
if name:#和name!=''一样,如果是空的就是假,如果是不为空就是真
print('输入正确')
else:
print('name不能为空')
#---------------非零即真------------------------------------------
#非零即真,用在int类型或者数字类型
num=input('请输入数字:').strip()
num=int(num)
if num:#和name!=''一样,如果是空的就是假,如果是不为空就是真
print('输入正确')
else:
print('不能为0')
#-------------------练习,判断小数-------------
# 正小数
# 1小数点左边和右边都是整数
# 2小数点个数为1
# 负小数
# 1小数点左边和右边都是整数
# 2小数点个数为1
# 3负号开头,且仅有一个
#
def c_f(s):
'''
这个函数是判断传入的字符串是否为合法小数
:param s: 传入一个字符串
:return: True/false
'''
s =str(s)
if s.count('.')==1:
s_split= s.split('.')#以.分割成一个list
left,right=s_split#这种left=split[0],right=split[1]一样
if left.isdigit() and right.isdigit():
return True #判断正小数返回true
elif left.startswith('-') and left[1].isdigit() and right.isdigit():
return True #判断负小数返回true
return False
print(c_f('1.2'))
print(c_f('-1.3'))