一、基本数据类型
1、数字类型
1.1、整型int
定义:age=10
作用:记录个数、年龄、年份、等级、出生年
1.2浮点型float
定义:x = 1.1
作用:记录价格、身高、体重、薪资
数学运算与比较运算
age = 18
age = age + 1
print(age) # 19
print(10 + 3.1) # 13.1
print(10 * 3.1) # 31.0
print(10 / 3.1) # 3.225806451612903
print(10 > 3.1) # True
print(10 == 3.1) # False
print(10 >= 3.1) # True
2、字符串类型str
作用:记录描述性质的状态,比如名字、性别、一段话、地址、国籍
定义:在' '、" "、""" """、''' '''内部包含一串字符
(1)所有引号的相同点:定义得到的都是str类型
(2)所有引号的不同点:注意引号的嵌套,外层用双引号内层就要用单引号...
s2 = 'i like "pubg"'
s1 = '你好hello 123'
print(len(s1)) # 11
print(s2) # i like "pubg"
三引号内的字符串可以写多行
msg = """
111
222
333
"""
print(msg)
print(len(msg)) # 每行后面都有换行符 所以有13个字符
(3) 补充1:
# x = "a b" # 有三个字符
# x = "aaa
bbb" #
换行
# print(x)
# x1 = "aaaaaaaaaaaaaaaaaaaaa"
# "aabbbbbb"
# "bbbb"
# print(x1) # 不换行输出 代码界面看一行太长用来换行
# 输出结果:aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbb
(3) 补充2:
分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。
Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠 作为路径分隔符。所以目前windows系统上的文件浏览器都是用 反斜杠 作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用的很少,斜杆和反斜杠在大多数情况下可以互换,没有影响。
filepath1 = "C:aaa
ew. txt "
filepath2 = "C:\aaa\new. txt"
filepath3 = r"C:aaa
ew. txt" # windows
filepath4 = "/Users/aaa/new.txt" # mac
print(filepath1) # ew.txt
print(filepath2) # C:aaa
ew.txt
print(filepath3) # C:aaa
ew.txt
print(filepath4) # /Users/aaa/new.txt
(3) 补充3:/和的使用
(1)浏览器地址栏网址使用 斜杆/
(2)windows文件浏览器上使用 反斜杠
(3)出现在html url() 属性中的路径,指定的路径是网络路径,所以必须用 斜杆/
(4)出现在普通字符串中的路径,如果代表的是windows文件路径,则使用 斜杆/ 和 反斜杠是一样的;如果代表的是网络文件路径,则必须使用 斜杆/
3:列表类型list:索引对应值,索引反映的是位置
定义:在[]内以逗号为分割符,按照从左到右的顺序一个一个地存放多个任意类型的值
作用:按照顺序记录多个值,优点是可以按照索引取指定位置的值
应用:同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资等
l=[111,2.22,'aaa',[333,444]]
# 0 1 2 3
print(l[0]) # 111
print(l[3]) # [333, 444]
print(l[-1]) # 倒着取 [333, 444]
print(l[3][0]) # 333
infos = [
['sa', 18, 'male'],
['justin', 22, 'male'],
['tank', 31, 'femlale'],
]
print(infos[1][1]) # 22
4、字典类型dict
与列表的相同之处:都可以存放多个任意类型的值
与列表的不同之处:字典使用key对应值,key通常是字符串类型
定义:在{}内以逗号为分割符,存放多个元素,每个元素都是由key:value组成
其中value可以是任意类型,而key通常是字符串类型
作用:按key:value记录多个值,优点是key对value有描述性的功能
字典是无序的,一般有索引的是有序的
d = {
'k1': 111,
'k2': 222,
'k3': 333
}
print(d['k1']) # 111
# 针对下述类型 取第二个学生的第二个爱好
students = [
{'name': 'alex', 'age': 38, 'hobbies': ['play', 'sleep']},
{'name': 'egon', 'age': 18, 'hobbies': ['read', 'sleep']},
{'name': 'wupeiqi', 'age': 58, 'hobbies': ['music', 'read', 'sleep']},
]
print(students[1]['hobbies'][1]) # sleep
5、布尔类型True和False
定义:tag = True
作用:记录真假两种状态
x = 10
y = 12
print(x == y) # False
print(x > y) # False
二、输入输出
1、接收用户输入input
python3中的input会将用户输入的内容都存成字符串str类型
db_name="sa"
inp_name=input("请输入您的用户名:") # 输入"sa"
print(inp_name,type(inp_name))
print(inp_name == db_name )
# sa <class 'str'>
# True
inp_age = input('请输入您的年龄:') # inp_age = '18'
inp_age = int(inp_age) # 纯数字的字符串转成int整型
print(type(inp_age)) # <class 'int'>
print(inp_age + 1) # 19
在python2中:
raw_input():用法与python3的input一模一样
input(): 要求用户必须输入一个明确的数据类型,输入的是什么类型,就存成什么类型
>>> age=input(">>>>>>>>>>>>>>>>>>>>>: ")
>>>>>>>>>>>>>>>>>>>>>: 18
>>> age,type(age)
(18, <type 'int'>)
>>>
>>> x=input(">>>>>>>>>>>>>>>>>>>>>: ")
>>>>>>>>>>>>>>>>>>>>>: 1.3
>>> x,type(x)
(1.3, <type 'float'>)
>>>
>>> x=input(">>>>>>>>>>>>>>>>>>>>>: ")
>>>>>>>>>>>>>>>>>>>>>: [1,2,3]
>>> x,type(x)
([1, 2, 3], <type 'list'>)
>>>
2、输出print
print("my name is %s my age is %s" % ("sa","18"))
print("my name is %s my age is %d" % ("sa1",18))
print("my name is %s my age is %s" % ("sa2",[1,2,3,]))
# my name is sa my age is 18
# my name is sa1 my age is 18
# my name is sa2 my age is [1, 2, 3]
print("1111",end=':')
print("2222")
# 输出结果 1111:2222
# ctrl/command 按住点击print 查看
# 因为print的代码里end自带
(换行),所以设置end:就是将
换成:
# 练习:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
# ------------ info of Egon -----------
# Name : Egon
# Age : 22
# Sex : male
# Job : Teacher
# ------------- end -----------------
# 方法一:
name = input('输入你的姓名:')
age = input('输入你的年龄:')
sex = input('输入你的性别:')
job = input('输入你的工作:')
hobbies = input('输入你的爱好:')
# print('{0:-^37}'.format(' info of %s ') %(name)) #让信息标题的名字随着你输入的名字改变
# print('Name:%s' %(name))
# print('Age:%s' %(age))
# print('Sex:%s' %(sex))
# print('Job:%s' %(job))
# print('Hobbies:%s' %(hobbies))
# print('{0:-^37}'.format(' end '))
#
# print('Name:%s
''Age:%s
''Sex:%s
''Job:%s
''Hobbies:%s
'
# %(name,age,sex,job,hobbies)) # 将输出放到一起进行输出
# 方法二
msg ='''
------------ info of %s -----------
Name : %s
Age : %s
Sex : %s
Job : %s
Hobbies: %s
------------- end -----------------
'''%(name,name,age,sex,job,hobbies)
print(msg)
3、了解知识
填充与格式化
先取到值,然后在冒号后设定填充格式:[填充字符][对齐方式][宽度]
+<10:左对齐,总共10个字符,不够的用+号填充
print('{0:+<10}'.format('开始执行')) # 开始执行++++++
=>10:右对齐,总共10个字符,不够的用=号填充
print('{0:=>10}'.format('开始执行')) # ======开始执行
0^10:居中显示,总共10个字符,不够的用0号填充
print('{0:0^10}'.format('开始执行')) # 000开始执行000
精度与进制
print('{salary:.3f}'.format(salary=1232132.12351)) #精确到小数点后3位,四舍五入,结果为:1232132.124
print('{0:b}'.format(123)) # 转成二进制,结果为:1111011
print('{0:o}'.format(9)) # 转成八进制,结果为:11
print('{0:x}'.format(15)) # 转成十六进制,结果为:f
print('{0:,}'.format(99812939393931)) # 千分位格式化,结果为:99,812,939,393,931
三、基本运算符
1、算数运算符
print(10+3) # 13
print(10-3) # 7
print(10*3) # 30
print(10/3) # 3.3333333333333335
print(10//3) # 3 整除 地板除
print(10%3) # 1 取余 取余数部分
了解(* *) +号不仅可以数字和数字相加 还可以字符串和字符串 列表和列表相加
x = 'aaa'
y = 'bbb'
print(x + y) # aaabbb
print([1,2,3] + [4,5]) # [1, 2, 3, 4, 5]
x = 'aaa'*3
print(x) # aaaaaaaaa
2、比较运算符
print(10 == 10)
print(10 != 3)
print(10 > 3)
print(10 < 3)
print(10 >= 3)
print(10 <= 3)
了解
s1 = 'abced'
s2 = 'az'
print(s2>s1) # True
# 字符串可以比大小 比较的是ASCII码 一个一个比 比出结果为止 比如a和a比不出 下一个b<z
s1 = [123,123]
s2 = [111]
print(s1 <s2) False
l1 = [1, 'abc', 3.1]
# l2 = [1, 2222, 3.1]
l2 = [1, "abb", 3.1]
print(l1 > l2) True