python(二)

循环和数据类型

1.1 for循环

猜年龄:猜错三次,即强制退出

  1. #!/usr/bin/env python
  2. My_Age = 24
  3. for i in range(3):
  4.     guess_age = int(input('age:'))
  5.     if guess_age > My_Age:
  6.         print("Please smaller")
  7.     elif guess_age < My_Age:
  8.         print("Please bigger")
  9.     else:
  10.         print("You are right!")
  11.         break
  12. else:                         #此处else的作用是上述循环正常执行完毕才会运行下面的代码
  13.     exit('You already try too many ci')
  14. print("Welcome!")

1.2 while循环

猜年龄:

  1. #!/usr/bin/env python
  2. count = 0
  3. boy_age = 56
  4. while count <100:
  5.     guess_age = input('age>>')
  6.     if guess_age.isdigit():
  7.         guess_age = int(guess_age)
  8.     else:
  9.         continue
  10.     if guess_age == boy_age:
  11.         print('You are right')
  12.         break
  13.     elif guess_age > boy_age:
  14.         print('smaller')
  15.     else:
  16.         print('older')
  17.     count +=1
  18. else:
  19.     print('You have aleardy paste too many choice!)

1.3 break和continue

break指跳出整个循环,continue指跳出当次循环。具体示例可运行下面两端代码

代码一:

  1. #!/usr/bin/env python
  2. for i in range(10):
  3.     print(i)
  4.     if i == 5:
  5.         break
  6. else:
  7.     print('The loop is over')

代码二:

  1. #!/usr/bin/env python
  2. for i in range(10):
  3.     for j in range(10):
  4.         if j <6:
  5.             continue
  6.         print(i,j)

1.4 数据类型——数字

1.4.1 整型

数据类型(数字、字符串、列表、字典、元组)
变量:用来记录状态
变量值的变化即状态的变化,程序运行的本质就是用来处理一系列状态的变化

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

整形:可以有十进制、八进制、十六进制

  1. oct(10) #将10进制转为8进制
  2. hex(10) #将10进制转为16进制
  3. bin(10) #将10进制转为2进制
  4. int(10) #以整形输出
  5. int('10',base=8) #第一个参数是字符串,base指定进制

1.4.2 长整型

长整型仅在python2中存在,python3中已取消。

  1. 跟C语言不同,Python的长整数没有指定位宽,
  2. 即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  3. 注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

1.4.3 浮点型

  1. 浮点数用来处理实数,即带有小数的数字。
  2. 浮点表示的形式是小数,但小数不一定都是浮点型,23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。

1.4.4 布尔型

只有两个值,真和假。True,False;1,0。

  1. bool(0)
  2. bool(1)

1.4.5 复数型

  1. 复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
  2. 注:Python中存在小数字池:-5 ~ 257

1.5 数据类型——字符串

  1. str('') #以字符串输出
  2. msg1 = 'a\tb'
  3. print(msg1.expandtabs(10)) #确定\t代表几个空格
  4. msg = 'hello world'
  5. print(msg.capitalize()) #首字母大写
  6. print(msg.center(20,'*')) #定义字符串长度为20,居中显示,左右用*号
  7. print(msg.count(l)) #统计字母l出现的次数
  8. print(msg[3]) #把字符串看做列表,第一个字母下标是0*****
  9. print(msg[0:3]) #顾头不顾尾
  10. print(msg.count('l',4,-1)) #在这个范围内统计l字母个数
  11. print(msg.endswith('l')) #判断字符串是否已括号内字符结尾,返回布尔值
  12. print(msg.find('d')) #返回位置,返回值是下标
  13. print('{0}{1}{0}'.format('name','age'))
  14. print('{name}'.format(name='alex'))
  15. print('{}{}'.format('name','age'))
  16. print(msg.index('e')) #显示索引位置
  17. msg2 = 'a123'
  18. print(msg2.isalnum()) # 至少一个字符,且都是字母或数字才返回True
  19. print(msg2.isalpha()) #至少一个字符,且都是字母才返回True
  20. msg3 = 123
  21. print(msg3.isdecimal()) #10进制数字字符
  22. msg4 = '10'
  23. print(msg4.isdigit()) #!!!整形数字字符
  24. msg5 = '10.3'
  25. print(msg5.isnumeric()) #
  26. isdigit()
  27. True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
  28. False: 汉字数字
  29. Error: 无
  30. isdecimal()
  31. True: Unicode数字,,全角数字(双字节)
  32. False: 罗马数字,汉字数字
  33. Error: byte数字(单字节)
  34. isnumeric()
  35. True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
  36. False: 无
  37. Error: byte数字(单字节)
  38. msg6 = 'if'
  39. print(msg.isidentifier()) #字符串为关键字返回True
  40. msg7 = 'aaa'
  41. print(msg7.islower()) #至少一个字符,且都是小写字母才返回True
  42. msg8 = ' '
  43. print(msg8.isspace()) #至少一个字符,且都是空格才返回True
  44. msg9 = 'Hello'
  45. print(msg9.istitle()) #至少一个字符,且为标题为真,即每个单词首字母大写
  46. msg10 = 'A'
  47. print(msg10.isupper()) #至少一个字符,且都为大写为真
  48. msg11 = 'abc'
  49. print(msg11.ljust(10,'*')) #左对齐,一共10个,不足用*不全
  50. print(msg11.rjust(10,'*')) #右对齐
  51. print(msg11.center(10,'*')) #居中对齐
  52. print(msg11.lower()) #大写转小写
  53. print(msg11.upper()) #小写转大写
  54. print(msg11.swapcase()) #大小写互换
  55. msg12 = ' asdf '
  56. print(msg12.strip()) #去掉空格*****
  57. print(msg12.lstrip()) #去掉左边空格
  58. print(msg12.rstrip()) #去掉右边空格
  59. msg13 = 'my name is abcd'
  60. table = str.maketrans('abcd','alex')
  61. print(msg13.translate(table)) #对字符串进行替换,必须一一对应
  62. msg14 = 'abc'
  63. print(msg14.zfill(20)) #字符串右对齐,不够用0填充
  64. msg15 = 'abc'
  65. print(msg15.replace('ab','dd'))
  66. 字符串常用操作:移除空白,分割,长度,索引,切片

1.6 数据类型——列表

  1. names = [] #空列表
  2. names = ['lizhong','zhongge','zhong'] #向列表中存数据
  3. names[1] #取出来的是zhongge,支持切片
    #列表的增删改查
  4. names.append('xiaomiao') #新增
  5. names.insert(2,'jiajia') #插入到zhongge后
  6. names.remove('zhongge') #删除zhongge
  7. del names[1] #删除
  8. names.pop(2) #删除此数值并返回此,括号里空则删最后一个
  9. names[0] = '李众’ #修改指定位置的
  10. print(names[-2]) #查后面找第二个
  11. print(names[0::2]) #取所有,隔一个取一个
  12. print(names[-3:]) #取最后三个
  13. print(names.index('lizhong') #如果没有,报错;如果有,返回下标
  14. first_index = names.index('lizhong')
  15. second_index = names[first_index+1].index('lizhong')
  16. print('second',second_index+first_index+1)
  17. print('count',names.count('lizhong') #count是计数
  18. names.clear() #清空列表
  19. L1 = ['sldj','slkjf']
  20. names.extend(L1) #两个列表的合并
  21. print(names)
  22. names.reverse() #反转列表
  23. print(names)
  24. names.sort() #列表按ascii排序
  25. print(names)

 

posted @ 2016-10-22 11:25  阅尽世间繁华  阅读(139)  评论(0)    收藏  举报