Python3.7.2学习

被百度欺骗的日子已经过去一段时间,堕落过,迷茫过,颓废过,一振不撅过。开始新的学习了

python3环境搭建见我的另一篇博客 https://blog.csdn.net/weixin_42498050/article/details/113776362

以下为倒叙排列

python2.7和python3的区别

输入函数:2.7 row_input  和  3 input  一样

2.7的input输入什么类型找什么类型,输入数字则为数字,输入字符串则为字符串

3.0的input所有输入默认字符串。需要加int    inputNum = int(input("请输入数字"))

打印  2.7 print a    3  print (a)

java python语法

1. python常量拼接变量可以用, 但打印结果多一个空格,可以String拼接int,String拼接数组。但py用+不能拼接数组。java用的+可以拼接String+int类型数据 String拼接数组用 "测试String"+ Arrays.toString(nameList))

print("guess_count==", guess_count) 

或者%s %s     %(变量名1,变量名2)

msg='''
信息:
name:%s
age:%s
job:%s
''' %(name,age,job)

%d  整型数字

%f  浮点

2.java布尔类型 true false 小写

python布尔类型 True False 大写

3. if else

java   

if(num==1){

} else if {

}else{

}

python 

if num=1:

    print ("xx")

elif num=0:

    print ("ss")

else

    print ("yy")

4. 次方次幂 2的3次方

java  Math的pow()方法返回第一个参数的第二个参数次方,格式为Math.pow(m,n),代表m的n次方

Math.pow(2, 3) 结果为8.0

python   2**3 结果为8

5. python中 ' ' 和 "" 没区别 三个'''代表注释

6. 去空格 去首位空格

java   trim();   函数内不可以传参数

System.out.println("    abc dd     ".trim());       结果为abc dd

python   strip()     函数内可以传参数 默认去空格。 如 strip("A")  把首位的单个/多个A字符去掉  如print("  abc dd  AAaabbb".strip("b")) 的结果为  abc dd  AAaa

print("  abc dd    ".strip())  结果为abc dd

7. 数组定义

java 

String[] nameList={"a","b","c"};
System.out.println(nameList[0]);

python

name_list=['a','b','c']
print(name_list[0])
print(name_list[1])

8. for循环

java

for(int i=0;i<10;i++){

}

python   

for i in range(10)

9.  sys.argv就是一个从程序外部获取参数的桥梁,这个“外部”很关键, 因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。 其第一个元素是程序本身,随后才依次是外部给予的参数

#!/usr/bin/env python

#-*-coding:utf-8-*-

import sys

a=3

print (a)

print ('你是谁')

print(sys.argv)

运行python 1.py 800结果为

3

你是谁

['1.py', '800']

10. 变量定义的规则:

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']


Day7

Day6

for j in range(5):
    for i in range(10):
        # print("i==",i)
        if i < 5:
            # continue跳出本次循环 继续下一次循环
            # break跳出所有循环
            continue
        # if i>8:
        #     break
        if j > 3:
            break
        print(i)
'''
文件的操作
'''
# 3.0用open
# w=write 会覆盖原理的文本内容 注意备份
f = open("write.txt", "w")
f.write("This is 1,\n")
f.write("This is 2,\n")
f.write("This is 3,\n")
# 关闭文件流
f.close()

f = open("write.txt", "r")
# 读所有
# print(f.read())
# print(f.readlines())
# 按行读取 ,结果有空行 因为有\n
for line in f:
    print(line)
# print(line),

if "3" in line:
    print("3在此行")
else:
    print(f.readline())

if "This is 3," == line:
    print("This is 3,在此...")

# #读的模式下写会报错,写的模式下读会报错 追加内容用a append
f = open("write.txt", 'a')
f.write("追加\n")
f.close()

# w新建只写,w+新建读写,二者都会将文件内容清零(以w方式打开,不能读出。w+可读写)
# w+与r+区别:r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建

f = open("write.txt", "w+")
f.write("new line\n")
print(f.read())
f.close()

Day5

# 元组 用()表示。方法'count', 'index'
t = (1, 2, 3, 4)
print(dir(t))
print("类型", type(t))
print(t.count(2))
print(t.index(2))

# 元祖转为列表list(t)
print("元组转为数组", list(t))
a = ['a', 'b', 'c']
print("数组转为元组", tuple(a))

print("取除数,返回实际小数", 1 / 2)
print("取除数,返回实际小数", 1 / 3)
print("取整数,返回商的整数部分", 1 // 2)
print("取整数,返回商的整数部分", 5 // 2)
print("取次幂", 2 ** 4)
print("取乘数", 2 * 4)
print("取模 返回除法的余数", 6 % 3)
print("取模 返回除法的余数", 10 % 4)
print("取模 返回除法的余数", 11 % 2)
print("等于", 1 == 1)
print("不等于", 1 != 2)

print("与运算", 10 & 50)  # 2
print("或运算", 10 | 50)  # 28
print("异或运算 一真一假为真", 10 ^ 50)  # 56
print("左移1位", 10 >> 1)  # 5  10/2
print("左移2位", 10 >> 2)  # 2  10/2/2=2
print("右移1位", 10 << 1)  # 20  10*2
print("右移2位", 10 << 2)  # 40  10*2*2=40
# 一个字节为8位,255  1kb=1024字节

name = ['alex', 'lose']
# if 'jack' not int name:
#     print("不在name中")

print(type(name))
print(type(name) is list)  # true
print(type(tuple(name)) is list)  # false
print(type(3) is int)  # true

运行结果

/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /Users/qa/PycharmProjects/newStudy/day5.py
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
类型 <class 'tuple'>
1
1
元组转为数组 [1, 2, 3, 4]
数组转为元组 ('a', 'b', 'c')
取除数,返回实际小数 0.5
取除数,返回实际小数 0.3333333333333333
取整数,返回商的整数部分 0
取整数,返回商的整数部分 2
取次幂 16
取乘数 8
取模 返回除法的余数 0
取模 返回除法的余数 2
取模 返回除法的余数 1
等于 True
不等于 True
与运算 2
或运算 58
异或运算 一真一假为真 56
左移1位 5
左移2位 2
右移1位 20
右移2位 40
<class 'list'>
True
False
True

Process finished with exit code 0
 

Day4

name_list = [1, 4, 3, 'z', 'b', 'c', 'g', 'a']
# 切片 左开右闭。跳着切0:6:2隔一个切一个 最后的代表取隔开后的第几个
print("前2个", name_list[0:2])
print("第2个元素", name_list[1:2])
print("第2到6个", name_list[1:6])
print("跳着切0:6:2隔一个切一个 最后的代表取隔开后的第几个", name_list[0:6:2])
print("跳着切0:6:3隔一个切一个 最后的代表取隔开后的第几个", name_list[0:6:3])
print("最后1个:" + name_list[-1])
print("倒数第2个:", name_list[-2:-1])
# 最后2个 用-2:
print("最后2个:", name_list[-2:])
print("最后3个:", name_list[-3:])
# [:3]和[0:3]效果一致
print("前3个:", name_list[:3])
print("前3个:", name_list[0:3])

# 排序 按照asc码排序 如 abfed排序后为abcdef等。在3.0以上不能把数字、字符放在一起用排序sort的方法
b = name_list[0:3]
c = name_list[3:]
b.sort()
help(b.sort())
c.sort()
print("取出数字升序排序", b)
print("取出字符升序排序", c)
print("2个数组相加", b + c)
# 判断包含
if 4 in (b + c):
    print("true")

e = b.extend(c)
print("2个数组相加 extend", e)

a = ['a', 'b']
name = "Alibaba"
# 拆分成字符
print("extend学习", a.extend(name))

m = range(0, 3)
print("m=", m)
print("类型type函数", type(m))

print(name_list)
# 索引值 按照编号去取
print(name_list[0])
print(name_list[1])
# 查询编号
print(enumerate(name_list))

# 查看数组的函数dir()  两个下划线的不需要记。只需要关注append count extend index insert pop remove reverse sort
# print(help(name_list))
print(dir(name_list))

# 追加相同的数组元素
name_list.append("c")
name_list.append('c')
# 打印列表元素为abccc
print(name_list)
# 打印第一个c的位置 index
print(name_list.index('c'))
# 统计c个数  结果为3
print(name_list.count('c'))

# 索引从0开始在第三个索引 也就是第二个位置插入元素
name_list.insert(2, 'cbefore')
print(name_list)

# 删除pop函数不传参代表删除一个字符 倒叙删除
name_list.pop()
print(name_list)

# 删除pop函数 传数字代表删除第n个索引位置 倒叙删除
name_list.pop(1)
print(name_list)

# 删除指定的元素字符
name_list.remove('cbefore')
print(name_list)

name_list.append('d')
name_list.append('z')
name_list.append('e')
name_list.insert(1, 'aAfter')
print(name_list)

# 字符串反转
name_list.reverse()
print(name_list)

name_list.append("!")
name_list.append("*")
name_list.append("_")
name_list.append("99")
name_list.append("95")
print(name_list)

# sort排序 数字排在前面 特殊字符 再是英文
# name_list.sort()
print(name_list)

# 在位置为3的索引位置插入字符串
name_list.insert(3, 'g')
name_list.insert(3, 'g')
name_list.insert(3, 'g')
name_list.insert(3, 'g')
print(name_list)

for i in range(name_list.count('g')):
    name_list.remove('g')
print(name_list)

运行结果

/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /Users/qa/PycharmProjects/newStudy/day04.py
前2个 [1, 4]
第2个元素 [4]
第2到6个 [4, 3, 'z', 'b', 'c']
跳着切0:6:2隔一个切一个 最后的代表取隔开后的第几个 [1, 3, 'b']
跳着切0:6:3隔一个切一个 最后的代表取隔开后的第几个 [1, 'z']
最后1个:a
倒数第2个: ['g']
最后2个: ['g', 'a']
最后3个: ['c', 'g', 'a']
前3个: [1, 4, 3]
前3个: [1, 4, 3]
Help on NoneType object:

class NoneType(object)
 |  Methods defined here:
 |  
 |  __bool__(self, /)
 |      self != 0
 |  
 |  __repr__(self, /)
 |      Return repr(self).
 |  
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |  
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.

取出数字升序排序 [1, 3, 4]
取出字符升序排序 ['a', 'b', 'c', 'g', 'z']
2个数组相加 [1, 3, 4, 'a', 'b', 'c', 'g', 'z']
true
2个数组相加 extend None
extend学习 None
m= range(0, 3)
类型type函数 <class 'range'>
[1, 4, 3, 'z', 'b', 'c', 'g', 'a']
1
4
<enumerate object at 0x10283eea0>
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
[1, 4, 3, 'z', 'b', 'c', 'g', 'a', 'c', 'c']
5
3
[1, 4, 'cbefore', 3, 'z', 'b', 'c', 'g', 'a', 'c', 'c']
[1, 4, 'cbefore', 3, 'z', 'b', 'c', 'g', 'a', 'c']
[1, 'cbefore', 3, 'z', 'b', 'c', 'g', 'a', 'c']
[1, 3, 'z', 'b', 'c', 'g', 'a', 'c']
[1, 'aAfter', 3, 'z', 'b', 'c', 'g', 'a', 'c', 'd', 'z', 'e']
['e', 'z', 'd', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1]
['e', 'z', 'd', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']
['e', 'z', 'd', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']
['e', 'z', 'd', 'g', 'g', 'g', 'g', 'c', 'a', 'g', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']
['e', 'z', 'd', 'c', 'a', 'c', 'b', 'z', 3, 'aAfter', 1, '!', '*', '_', '99', '95']

Process finished with exit code 0

Day3

# 循环次数限制
input_num = 10
luck_num = -1

for i in range(3):
    input_num = int(input("请输入数字"))
    if input_num > luck_num:
        print("大于预期")
    elif input_num < luck_num:
        print("小于预期")
    else:
        print("相等")
        break
    print(i)

else:
    print("too many retrys")

# int 整型 -2**31到2**31-1
# long长整型 无限长 不会有数字溢出 会自动转换为long

a = 2 ** 64
print(a)
# 查看数据类型 type
# <class 'int'>   <class 'float'>
print(type(a))

print(type(2.5))

# 布尔值 真或假 1或0
1 == True

if 1:
    print(True)
elif 0:
    print(False)
else:
    print("???")

print(2 ** 3)

print("  abc dd    ".strip("a"))

name = input("name:").strip("l")
age = int(input("age:"))
job = input("job:").strip()

print("信息----\nname:" + name + ",age:" + age + ",job:" + job)
# %s代表变量的值
print("信息 %s:\nName:%s \nAge:%s \nJob:%s" % (name, name, age, job))

msg = '''
信息:
name:%s
age:%d
job:%s
''' % (name, age, job)

print(msg)

'''
三个单引号代表段落注释
'''


Day2

# luck_num = 19

# 输入函数:2.7 row_input  和  3 input  一样

# 2.7的input输入什么类型找什么类型,输入数字则为数字,输入字符串则为字符串

# 3.0的input所有输入默认字符串。需要加int 

# while True:
#     input_num = int(input("请输入数字"))
#     # input_num = raw_input("请输入数字")  输入6 比19大
#
#     if input_num == luck_num:
#         print("相等")
##  相等则结束循环
#         break
#     elif input_num > luck_num:
#         print("大于预期")
#     else:
#         print("小于预期")


# # 优化
# luck_num = 19
# input_num = 1
#
# guess_count = 0
# # 输入次数限制
# while luck_num != input_num and guess_count < 3:
#     input_num = int(input("请输入数字"))
#     if input_num > luck_num:
#         print("大于预期")
#     elif input_num < luck_num:
#         print("小于预期")
#
#     guess_count += 1
#
# print("相等")


# 优化 增加重试次数小于3次的条件
luck_num = 19
input_num = 1

guess_count = 0
# 输入次数限制
while guess_count < 3:
    input_num = int(input("请输入数字"))
    if input_num > luck_num:
        print("大于预期")
    elif input_num < luck_num:
        print("小于预期")

    else:
        print("相等")
        break

    guess_count += 1
    # 常量拼接变量用, java用的是+
    print("guess_count==", guess_count)

else:
    print("too many retrys")


Day1

name = "abc"
age = 10

print(name + "的年龄=", age)
print(age)

a = 3
print(id(a))
b = a
a = 5

print(id(a))
print(id(b))
print(a)
print(b)
print(a)

print(111)

n = "jack"
# python3
# name=input("请输入你的名字:")
# python2.7
# name=raw_input("请输入你的名字:")

print(name)

a = 5
print(eval('a'))

sex = input("请输入性别")

if sex == "man":
    # Python要求强制缩进
    print("男人")
elif sex == "woman":
    print("女人")
else:
    print("未知")

待续。。。

猜你喜欢

转载自blog.csdn.net/weixin_42498050/article/details/113777264