第一个Python程序(基础语法)

jupyter 工具的简单使用:

jupyter 默认使用8888 的端口 通过web 访问即可

第一个python 程序

Python 基础语法:(正题开始...)

  注释—— # 标注的文本   
  数字 
       整数,不区分long和int 
           进制0xa、0o10、0b10 
           bool,2个值True、False 
    浮点数 
      1.2、3.1415、-0.12,1.46e9等价于1.46*109 
      复数,1+2j 
    字符串 
        使用 ' " 单双引号引用的字符的序列 
        '''和""" 单双三引号,可以跨行、可以在其中自由的使用单双引号 
       在字符串前面加上r或者R前缀,表示该字符串不做特殊的处理
 转义序列 
    \\ \t    \r    \n    \'    \" 
    前缀r,把里面的所有字符当普通字符对待 
缩进 
    未使用C等语言的花括号,而是采用缩进的方式表示层次关系 
   约定使用4个空格缩进 
续行 
  在行尾使用 \ 
   如果使用各种括号,认为括号内是一个整体,内部跨行不用 \
   。
   。
   。
   (好烦,记不住)

实践中学习...

几个简单函数的使用:

    input 函数获取键盘输入 
    print  打印
    range 

shell基础的简单代码移植:

  • 输入2个数字,输出最大数
a = int(input('>>>'))
b = int(input('>>>'))
if a > b:
    print(a)
else:
    print(b)
#  注意input  输入的为字符串,要与0 进行比较,注意类型转换
  • 给定一个不超过5位的正整数,判断其有几位
a = int(input('>>>'))
if a < 10:
    print('1')
elif a < 100:
    print('2')
elif a < 1000:
    print('3')
elif a < 10000:
    print('4')
elif a < 100000:
    print('5')
#多分支结构的简单使用
a = int(input('>>>'))
if a < 1000:
    if a < 10:
        print('1')
    elif a < 100:
        print('2')
    else:
        print('3')
else:
    if a < 10000:
        print('4')
    else:
        print('5')
# 小代码,新玩法,简单二分法的应用,是不是效率会提高点
  • 给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字
a = int(input('>>>'))
if a < 1000:
    if a < 10:
        num = 1
    elif a < 100:
        num = 2
    else:
        num = 3
else:
    if a < 10000:
        num = 4
    else:
        num = 5
print(num)
c = a
for i in range(num):
    n = c//10
    print(c-n*10)
    c = n
# 你以为的你以为?,注意变量的赋值
python 为弱类型语言,变量的覆盖,加以使用
  • 给定一个不超过5位的正整数,判断该数的位数,依次从万位打印到个位的数
a = int(input('>>>'))
if a < 1000:
    if a < 10:
        num = 1
    elif a < 100:
        num = 2
    else:
        num = 3
else:
    if a < 10000:
        num = 4
    else:
        num = 5
print(num)
c = 0
for i in range(num,0,-1):
    n = a//(10**(i-1))
    print(n-c*10)
    c = n

int()
只取整数部分
round()
四舍六入五取偶
//
整除向下取整

math 模块:

floor 向下取整,ceil 向上取整(注意负号,负数的使用)

类型判断

type()                     返回对象类型
isinstance()               返回布尔值        

列表list

一个队列,一个排列整齐的队伍 
 列表内的个体称作元素,由若干元素组成列表 
元素可以是任意对象(数字、字符串、对象、列表等) 
列表内元素有顺序,可以使用索引 
线性的数据结构 
使用 [ ] 表示
列表是可变的

列表list定义 初始化

lst = list() 
lst = [] 
lst = [2, 6, 9, 'ab'] 
lst = list(range(5))
#  求一百以内的质素
n = 100
primenumber = []
for x in range(2,n):
    for i in primenumber:
        if x%i == 0:
            break
    else:
        primenumber.append(x)
print(primenumber)

元组tuple

 一个有序的元素组成的集合 
 使用小括号 ( ) 表示
 元组是不可变对象

冒泡法代码实现

nums = [9,8,7,6,5,4,3,2,1]
length = len(nums)
for i in range(length):
    for j in range(length-i-1):
        if nums[j] > nums[j+1]:
            nums[j],nums[j+1] = nums[j+1],nums[j]
print(nums)

字符串

一个个字符组成的有序的序列,是字符的集合 
使用单引号、双引号、三引号引住的字符序列
字符串是不可变对象

不对原列表进行修改
partition 与 split 区别

bytes、bytearray

bytes   不可变字节序列 
bytearray  字节数组  可变

切片

通过索引区间访问线性结构的一段数据 
sequence[start:stop]  表示返回[start, stop)区间的子序列 
支持负索引 
start为0,可以省略 p stop为末尾,可以省略 
超过上界(右边界),就取到末尾;超过下界(左边界),取到开头 
start一定要在stop的左边
 [:] 表示从头至尾,全部元素被取出,等效于copy()方法

封装和解构

lst = [1,(2,3,4),5]
a,(b,c,d),e = lst
print(a,b,c,d)
# 不仅可以使用索引

_,[*_,val],*_ = lst
print(val)
_,(*_,val),*_ = lst
print(val)

key, _ , val = "JAVA_HOME=/usr/bin".partition('=') 
print(key) 
print(val
key,val =  "JAVA_HOME=/usr/bin".split('=') 
print(key)
print(val)

集set

可变的、无序的、不重复的元素的集合
set的元素要求必须可以hash 
目前学过的不可hash的类型有list、set 
元素不可以索引 
set可以迭代

字典dict

key-value键值对的数据的集合 
可变的、无序的、key不重复

d = dict(a=1,b=2,c='abc')
keys = []
for k,v in d.items():
    if isinstance(v,str):
        keys.append(k)
for k in keys:
    d.pop(k)
print(d)

#字典的删除

列表解析式

[x**2 for x in range(1,11)]
# 下面for 循环的简单写法
d = []
for x in range(1,11):
    d.append(x**2)
print(d)
列表解析式简单应用:
相邻两项求和
lst = [1,4,9,16,2,5,10,15]
[lst[i] + lst[i+1] for i in range(len(lst)-1)]

打印九九乘法表
[print('{}*{}={:2}{}'.format(j,i,i*j,'\n' if i == j else ''),end="") for i in range(1,10) for j in range(1,i+1)]

[print('{}*{}={:2}{}'.format(j,i,i*j,'\n' if i == j else ''),end="") for i in range(1,10) for j in range(1,i+1)]

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券