python语法,基础
1.用缩进表达代码逻辑:推荐缩进4个空格
2.注释和续行与shell一样
在pycharm中,按ctrl + / 可以快速添加/取消注释
3.多个语句书写在同一行,可以使用分号进行分割。但不推荐
输出语句
主要采用的是print函数
###在python中函数调用需要添加()
>>>print("hello world") #打印一个字符串
hello world
###在print函数的()中,输入的是参数,各个参数之间用逗号,隔开
>>> print("hao",123) #打印字符串和数字
hao 123
###用sep可以指定分割符,分割符号可以随便指定
>>> print("hao", 123, "abc", sep="***")
hao***123***abc
输入语句
- python中,通过input函数获取用户键盘输入
- input函数的参数是字符串,它是屏幕提示语
#####变量赋值,= 两边空格可有可无#####
>>> user = input('username: ') #用户输入内容保存到变量user中
username: zhangsan
>>> user #使用变量
‘zhangsan’
练习:模拟用户登录
1.创建名为login.py的程序文件
2.程序提示用户输入用户名
3.用户输入用户名后,打印欢迎用户
vim login.py
user = input('请输入用户名: ')
print('welcome', user)
print('welcome %s' % user)
########### input读入的数据都是字符串类型,相同类型的数据才能运算#############
>>> num = input("number: ")
number: 10
>>> num + 5 #num是字符串,不能和数字进行运算
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> type(num) # 查看num的类型
<class 'str'>
>>> int(num) + 5 #int函数将字符串转成整数
15
>>> str(5)
' 5 '
>>>num + str(5) #str函数将对象转成字符串
‘105’
>>> num + "5"
'105'
变量
- 字面量就是看到什么是什么,如‘abc’, 100
- 变量是变化的量,看到什么不一定是什么。
- 变量只是为了编写代码方便。 当看到变量时,应该透过变量 看到它代表的值
- 编写代码时尽量多使用变量,而不是直接使用字面量。直接使用字面量是硬编码,代码可重用性差。
- 变量名称约定
- 第一个字符只能是大小写字母或下划线
- 后续字符只能是大小写字母或数字或下划线
区分大小写
推荐采用的全名方法
- 变量名全部采用小写字母,如pythonstring
- 简短、有意义,如pystr
- 多个单词间用下划线分割,如py_str
- 变量名用名词,函数名用谓词(动词+名词),如phone/update_phone
- 类名采用驼峰形式,如MyClass
变量在使用之前。必须先赋值
变量赋值是一个自由向左的运算,将=右边表达式的计算结果,赋值给左边的变量
>>>a = 10 + 5
>>>a
15
变量支持重新赋值
>>>a = 20
>>>a = a + 10 #自右向左计算,赋值变量,将a+10的结果赋值给a
#以上代码可以简写
>>>a += 10
>>>a
>>>20
>>>a *= 2
>>>a
>>>40
注意:python不支持诸如i++/i--之类的操作
>>> a = 40
>>> ++a #正正为正
40
>>> --a #负负为正
40
运算符
算术运算符
#加减乘正常运算
#/是真正的除法
>>> 5 / 3
1.6666666666666667
# // 只保留商
>>> 5 // 3
1
# %是模运算,即求余
>>> 5 % 3
2
# ** 是幂运算
>>> 2 ** 3
8
#通过round函数实现四舍五入
>>> round(5 / 3) #5 / 3,默认保留到整数部分
2
>>> round(5 / 3, 2) #精确到小数点
1.67后2位
#divmod函数。可以同时得到商和余数
>>> divmod(5, 3)
(1, 2)
>>> a, b =divmod(5, 3) 商和余数分别赋值给a和b
>>> a
1
>>> b
2
#######################################################################
比较运算符
#判断是否相等使用 ==
>>> 3 == 3
True #True是关键字,表示真
#判断是否不相等使用 !=
>>> 3 != 3
False #False是关键字,表示假
#python支持连续比较
>>> 10 < 20 < 30
True
>>> 10 < 20 > 15
True
逻辑运算符
#and两边表达式结果全为True,最终才为真True
>>> 10 < 20 and 20 > 15
True
#or两边表达式全为False,最终才为False
>>> 10 < 20 or 20 > 100
True
>>> 100 < 20 or 20 >100
False
#not是单目运算符,将真变假,将假变成真
>>> 20 > 10
True
>>> not 20 > 10
False
数据类型
数字
- 整数: 没有小数点
- 浮点数: 有小数点
- 布尔数:True为1,False为0
>>> True + 1
2
>>> False * 5
0
整数在不同进制下的表示方法
#python默认以10进制表示数字
#8进制以0o或0O开头
>>> 0o11 1 * 8 + 1
9
#16进制默认以0x或0X开头
>>> 0x11 1 * 16 + 1
17
#2进制以0b或0B开头
>>> 0b11
3
#####0x235 转成10进制怎么算?
>>> 2 * 16 * 16 + 3 * 16 + 5
565
2小时3分5秒是多少秒?
>>> 2 * 60 * 60 + 3 * 60 + 5
7385
#0o235转换成10进制
>>> 2 * 8 * 8 + 3 * 8 + 5
157
#10000秒是几小时几分几秒?
>>> divmod(10000,60)
(166, 40) ->> 166 分40秒
>>> divmod(166,60)
(2, 46) ->> 2小时46分
#10000转成16进制数是?
>>> divmod(10000,16)
(625, 0)
>>> divmod(625,16)
(39, 1)
>>> divmod(39,16)
(2, 7)
>>> hex(10000)
'0x2710'
#10000转成8进制
>>> divmod(10000,8)
(1250, 0)
>>> divmod(1250,8)
(156, 2)
>>> divmod(156,8)
(19, 4)
>>> divmod(19,8)
(2, 3)
>>> 0o23420
10000
字符串
- python中字符串被定义为引导之间的字符集合
- python支持使用成对的单引号或者双引号
- 无论单引号,还是双引号,表示意义相同
- python还支持三引号(三个连续的单引号或者双引号),可以用来包含特殊字符
>>> s1 = """tom
... jerry
... jack
... rose
... """
>>> print(s1)
tom
jerry
jack
rose - 常见操作
>>> s1 = 'python'
>>> len(s1) #取长度
6
>>> s1[0] #第一个字符
'p'
>>> s1[6] #超出范围
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> s1[-1] #负数表示从右向左,最后的一个字符
'n'
>>> s1[-6] #自由向左第6个字符
'p'
>>> s1[2:4] #切片,起始下标包含,结束下标不包含
'th'
>>> s1[2:6] #切片时。下标超出范围是允许的
'thon'
>>> s1[2:] #结束下标不写,表示取到结尾
'thon'
>>> s1[2:] #起始下标不写,表示从开头取
‘py’
>>>s1[:] #默认取全部
>>> s1[::2] #步长值为2,取切片
’pto‘
>>> s1[1::2]
'yhn'
>>> 't' in s1 #t在s1中吗?
True
>>> 'th' in s1
True
>>> 'to' in s1 #to在s1中吗?
False
>>> 'to' not in s1 #to不在s1中吗?
True
>>> s1 + ‘is good’ #字符串拼接
‘python is good’
>>> '*' * 30 字符串*重复30遍
'******************************'
>>> '#' * 30
'##############################'
>>> s1 * 3
'pythonpythonpython'
列表
- 列表可以当作数组使用
- 字符串的相关操作同样适用于列表
>>> l1 = [10, 20, 5, 30, 8]
>>> len(l1)
5
>>> l1[0]
10
>>> l1[2:4]
[5, 30]
>>> 20 in l1
True
>>> l1.append(20) #向列表尾部追加数字20
>>> l1
[10, 20, 5, 30, 8, 20]
元组
- 可以理解为元组是不可变的列表
- 列表的相关操作同样适用于元组
>>> t = (10, 20, 8, 38)
>>> len(t)
4
>>> 10 in t
True
>>> t[2]
8
l1[0] = 100 #将列表第一列改成100
>>> l1
[100, 20, 5, 30, 8, 20]
>>> t[0] = 100 #元组不可变,报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
字典
- 字典是由键-值(key-value)对构成的映射数据类型
- 通过键取值,不支持下标操作
- 字典是没有顺序的
>>> 'tom' in d1 tom是字典的key吗
False
>>> 'name' in d1 #name是字典的key吗
True
>>> d1['name'] #通过key取value
‘tom’
数据类型总结
- 按存储模型分类
- 标量:字符串、数字
- 容器:列表、元组、字典
- 按访问模型分类
- 直接:数字
- 顺序:字符串、列表、元组
- 映射:字典
- 按更新模型分类
- 不可变:数字、字符串、元组
- 可变:列表、字典
最新文章
- javascript严格模式
- angular源码分析:angular中脏活累活的承担者之$interpolate
- shell和bat 监控进程,自动关机
- Linux源码安装mysql步骤
- [SQL]LTRIM 、 RTRIM、SUBSTRING 如何使用
- MVC-READ5(asp.net web from PK asp.net MVC)
- 关于androidManifest.xml的概叙以及intent-filter的详细分析
- Samba 安全漏洞
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
- Linux Zynq GPIO中断
- Linux学习之sudo命令
- Python正则表达式完全指南(上)
- bootstrap导航栏.nav与.navbar区别
- BloomFilter——大规模数据处理利器
- C#学习笔记---C#操作SQL数据库
- pc端,移动端css重置样式
- 使用支持向量机(SVM) 算法进行分类
- js之获取url中";?";后面的字串
- Ubuntukylin-14.04-desktop(带分区)安装步骤详解
- Bash,Vim,gdb&;git常用命令