python基础二

一、为什么要有数据类类型?

1. 什么是数据?

   x = 10 , 10 就是我们要存储的数据,数据是对信息的描述

2. 为什么要有数据类型?

 对于人类来说,看到一个数字,大脑就知道是数值类型,看到一串文字,就知道就是字符串类型。

但计算机不知道,因引需要定义数据类型,明确地告知计算机,各种数据类型的规则 :

   比始:用引号引起来的,就是字符串类型; 有小数点的数字,就是浮点类型

3. 数据类型

  数字         int:用于计数、计算、运算等。1,3 ,5,100.......

  字符串     str: 用于少量数据的存储,便于操作

  布尔        bool: True,False, 两种状态,机器反馈给用户的对,错

  列表        list: [  'alex',123,('123',456),[ 'aa','bb' ]..... ] 大量的数据,各种数据类型,便于操作

  元组       tuple: (1,'chris','name','sex')   只读列表

  字典       dict: {'name':'chris','sex':'male','age':16,'job':'engineer'}   大量的关联数据

  集合       set: {‘a','b',...} 关系测试。  集合也是花括号,但是存储的不是键值对。

二、数据类型之间的转化

int ----> str   str(int)

str ----> int  in(str) :前提条件,字符串中的字符都是数字,可以用str.isdigit()判断 

int ---> bool 非零即True,零即False

bool ---> int      True即1, False即为0

str ---> bool 非空字符串即True,空字符串即False

bool ---> str  'True'  'False'

name = input("请输入大名")

if name:

  print(666)

else:

  print("无内容")

 三、字符串操作

capitalize() : 使字符串首字母大写,其余字母小写

print("78abDefE89".capitalize())  # 输出结果: 78abdefe89
print("r78abDefE89".capitalize())  # 输出结果: R78abdefe89

strip()

s = input("请输入你想输入的字符串").strip()
# 养成输入加strip()方法习惯,

 format() 的三种玩法,格式化输出

name = input("input your name:").strip()
age = input("iput your age: ").strip()
gender = input("input your gender:")
print('我叫{},今年我{}岁了,我的性别是{}。'.format(name,age,gender))   # 必段一一对应
print('我叫{0},今年我{2}岁了,我的性别是{1},我还是叫{0}。'.format(name,gender,age))   # 按照索引来取值
print('我叫{name},今年我{age}岁了,我的性别是{gender},我还是叫{name}。'.format(name=name,gender=gender,age=age))   # 按照关键字来取值

输出结果如下:
input your name:chris
iput your age: 18
input your gender:male
我叫chris,今年我18岁了,我的性别是male。
我叫chris,今年我18岁了,我的性别是male,我还是叫chris。
我叫chris,今年我18岁了,我的性别是male,我还是叫chris。

Process finished with exit code 0

int <---> bool :
非0 True 0 False
True 1 False 0
int <---> str
str(123)
int('123') :字符串必须全部是数字组成
bool<---> str
非空 True 空字符串 False
str(True)
s1 = 'alexsb'
1.索引
s1[0]
2.切片 顾头不顾腚
s1[:4]
s1[:]
3.切片+步长
s1[::2]
s1[100:] ?

操作方法:
upper lower 变大写,变小写 验证码
strip:默认去除去除首位的空格,换行符,制表符
strip(元素)
lstrip()
rstrip()
startswith endswith 判断以...开头,结尾
find 通过元素找索引,找不到返回-1
index 通过元素找索引,找不到报错
replace 替换 (old,new,次数)
format
:'{}{}{}'.format('alex','man',1000)
:'{0}{1}{2}'.format('alex','man',1000)
:'{name}{age}{sex}'.format(name='alex',sex='man',age=1000)
count:查询次数
join:
'_'.join(interable)
split:
'alex wusir'.split() ---> ['alex','wusir']
可以指定分隔符。
可以指定分割次数。
' alex wusir'.split('') ---> ['','alex','wusir']
title: 每个非字母隔开的内容的首字母大写
len(): 统计字符串的字符的个数
isdigit(): 判断字符串是否全部有数字组成
isalpha():全部由字母组成
isalnum(): 全部由字母或数字组成。
swapcase():大小写反转
center():居中可设置填充物。
capitalize() 首字母大写,其余的变成小写。

for  循环

slogan = 'abcdef'# 输出asb,bsb,csb,...fsb
is_first = True  # 设置第一次进入循环标志位
msg = ''
for item  in slogan:
    if is_first:
        msg += item
        is_first = False
    else:
        msg += 'sb
' + item
print(msg + "sb")

输出结果:
C:Python36python.exe C:/Users/jiayong/PycharmProjects/knight_schema/day04/01.py
asb
bsb
csb
dsb
esb
fsb

Process finished with exit code 0
'''
列表,按照索引取元素的话,元素什么类型,返回的值就是什么类型;
列表,按照切片取元素的话,返回的还是列表
'''
list1 = ["chris",123,"smuice",[1,3,"cc"]]
print(list1[0],type(list1[0]))   # 输出结果:chris <class 'str'>
print(list1[-1],type(list1[-1]))   #输出结果: [1, 3, 'cc'] <class 'list'>
print(list1[0:1],type(list1[0:1]))  # 输出结果:['chris'] <class 'list'>
原文地址:https://www.cnblogs.com/chris-jia/p/9431639.html