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’

数据类型总结

  • 按存储模型分类
  • 标量:字符串、数字
  • 容器:列表、元组、字典
  • 按访问模型分类
  • 直接:数字
  • 顺序:字符串、列表、元组
  • 映射:字典
  • 按更新模型分类
  • 不可变:数字、字符串、元组
  • 可变:列表、字典

python语法,基础的更多相关文章

  1. (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md

    第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...

  2. python语法基础笔记

    本篇笔记基于博主自己的的学习,理解,总结所写.很多东西可能存在误解,不能保证百分之百的正确. 1. 数据表达1.1 常量和变量1.2 数据类型1.2.1 基本数据元素1.2.1.1 数字1.2.1.2 ...

  3. Python | Python语法基础

    目录 前言 1. 变量与简单数据结构 2. 列表相关 3. 集合 4. If语句 5. 字典 6. 用户输入和while循环 7. 函数 8. 类与对象 9. 文件 10. 异常 11. 测试 最后 ...

  4. python 笔记2:python语法基础

    python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...

  5. python语法基础-面向对象-基础-长期维护

    ###############    类的基本操作    ############## """ 类的基本认识: 1,类就是一个模子 2,dict,list都是类,具体的一 ...

  6. day_02~day_09的Python语法基础

    Python基础学习 day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> ...

  7. python语法基础-初始化/继承

    写了一些程序,基本上都是直接def函数 然后在main方法中 调用 但是在一些应用程序中 会有基本语法的使用(初始化,继承) 初始化: 1.在程序执行时一定执行一次的操作 2.python中初始化in ...

  8. python语法基础-网络编程-TCP协议和UDP协议

    ###############    网络编程    ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...

  9. python语法基础-异常操作-长期维护

    ###############    python-异常的操作  ############### # 异常:python解释器遇到一个错误,会停止程序的执行,并且提示错误信息,这就是异常, # 抛出异 ...

  10. python语法基础-文件操作-长期维护

    ###############    python-简单的文件操作  ############### # python中文件的操作 # 文件操作的基本套路 # 1,打开文件,默认是是只读方式打开文件 ...

随机推荐

  1. Spark优化之小文件是否需要合并?

    我们知道,大部分Spark计算都是在内存中完成的,所以Spark的瓶颈一般来自于集群(standalone, yarn, mesos, k8s)的资源紧张,CPU,网络带宽,内存.Spark的性能,想 ...

  2. Clion使用gtk3

    在已经安装了gtk3的情况下,使用Clion还是无法正常给gtk3. 此时,我们需要更改CMakeList. 以下代码中需要添加的行都以#开头,此仅为了标识需要添加的行,而无需在实际代码中添加# cm ...

  3. 阿里P8架构师大话设计模式,体会乐与怒的程序人生中值得回味一幕

    本书特色 本书有两个特色,第一特色是重视过程.看了太多的计算机编程类的图书,大多数书籍都是集中在讲授优秀的解决方案或者一个完美的程序样例,但对这些解决方案和程序的演变过程却重视不够,好书之所以好,就是 ...

  4. yum安装软件时,提示No package netstat available.的解决方法

    1. 序言 如笔者在本机上运行netstat时,提示没有这个命令,向来简单粗暴,直接yum -y install netstat,显然是不能正常安装的. [root@hadoop-103 ~]# yu ...

  5. java 二分查找的注意事项

    二分查找也是最简单的算法之一了.但是最近发现一般的写法会有问题. public int search(int[] nums, int target) { int left = 0; int right ...

  6. 解决 supervisor : 无法加载文件 C:\Users\charles\AppData\Roaming\npm\supervisor.ps1

    在使用vsCode中运行cnpm install时报错. 解决方法 1.在win10 系统中搜索框 输入 Windows PowerShell,选择 管理员身份运行 2.使用,win+R打开了powe ...

  7. CCF-202006-1线性分类器

    1 def judga(lis1,z): #判断列表lis1中点是否都在线z的一侧 s=0 for i in lis1: if z[0]+i[0]*z[1]+i[1]*z[2]>0: s+=1 ...

  8. 第3篇scrum冲刺(5.23)

    一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏  调用小程序接口获取用户微信登录权限,初始化  完成云开发配置,初始化数据库: 进度较慢,后面可能会有点困难 ...

  9. 多元线性回归检验t检验(P值),F检验,R方等参数的含义

    做线性回归的时候,检验回归方程和各变量对因变量的解释参数很容易搞混乱,下面对这些参数进行一下说明: 1.t检验:t检验是对单个变量系数的显著性检验   一般看p值:    如果p值小于0.05表示该自 ...

  10. 在Unity中检测死循环和卡死

    当游戏在手机/模拟器上卡死,logcat没有日志输出,也没有卡死堆栈信息或者bugly也没有捕获到异常,你是否很焦急?本文介绍一下我们项目中检测Unity卡死的方法,也许适合你使用. 实现原理 在绝大 ...